eygle.com   eygle.com
eygle.com  
 

« 美西游记之 - 圣地亚哥shamu秀 | Blog首页 | CURSOR_SPACE_FOR_TIME 参数废弃 »

关于Mutex的笔记

作者:eygle |【转载时请以超链接形式标明文章和作者信息及本声明
链接:

Mutex 的发音是 /mjuteks/ ,其含义为互斥(体),这个词是Mutual Exclude的缩写。

Mutex在计算机中是互斥也就是排他持有的一种方式,和信号量-Semaphore有可以对比之处。有人做过如下类比:


  • Mutex是一把钥匙,一个人拿了就可进入一个房间,出来的时候把钥匙交给队列的第一个。一般的用法是用于串行化对critical section代码的访问,保证这段代码不会被并行的运行。

  • Semaphore是一件可以容纳N人的房间,如果人不满就可以进去,如果人满了,就要等待有人出来。对于N=1的情况,称为binary semaphore。一般的用法是,用于限制对于某一资源的同时访问。

对于Binary semaphore与Mutex,这两者之间就存在了很多相似之处:

在有的系统中Binary semaphore与Mutex是没有差异的。在有的系统上,主要的差异是mutex一定要由获得锁的进程来释放。而semaphore可以由其它进程释放(这时的semaphore实际就是个原子的变量,大家可以加或减),因此semaphore可以用于进程间同步。Semaphore的同步功能是所有系统都支持的,而Mutex能否由其他进程释放则未定,因此建议mutex只用于保护critical section。而semaphore则用于保护某变量,或者同步。

By eygle on 2008-10-10 14:46 | Comments (0) | Posted to Internal | Edit |

相关文章 随机文章
  • Oracle KSL Latch 管理层 与 Latch管理
  • Oracle10gR2中的Mutex竞争的案例
  • CURSOR_SPACE_FOR_TIME 参数废弃
  • DBA警世录:bootstrap$的禁忌
  • Varchar2(4000)能存多少数据?
  • HRAY纳斯达克的IPO历程
    隐含参数_disable_logging的几点说明
    关于分区表与唯一索引的测试记录
    如何查询redo logfile的使用率
    早岁哪知世事艰
    搜索本站:

    留言 (0)

    发表留言:



    Remember Me?
    (输入验证码后方可评论,谢谢支持)



    CopyRight © 2004~2010 eygle.com, All rights reserved.