Internal
2008-10-10
关于Mutex的笔记
Mutex 的发音是 /mjuteks/ ,其含义为互斥(体),这个词是Mutual Exclude的缩写。
Mutex在计算机中是互斥也就是排他持有的一种方式,和信号量-Semaphore有可以对比之处。有人做过如下类比:- Mutex是一把钥匙,一个人拿了就可进入一个房间,出来的时候把钥匙交给队列的第一个。一般的用法是用于串行化对critical section代码的访问,保证这段代码不会被并行的运行。
- Semaphore是一件可以容纳N人的房间,如果人不满就可以进去,如果人满了,就要等待有人出来。对于N=1的情况,称为binary semaphore。一般的用法是,用于限制对于某一资源的同时访问。
在有的系统中Binary semaphore与Mutex是没有差异的。在有的系统上,主要的差异是mutex一定要由获得锁的进程来释放。而semaphore可以由其它进程释放(这时的semaphore实际就是个原子的变量,大家可以加或减),因此semaphore可以用于进程间同步。Semaphore的同步功能是所有系统都支持的,而Mutex能否由其他进程释放则未定,因此建议mutex只用于保护critical section。而semaphore则用于保护某变量,或者同步。
历史上的今天
- 2016-10-10 2016.11.4日-第六届Oracle技术嘉年华与你相约
- 2012-10-10 Oracle Database 12c 新特性 - Pluggable Database
- 2006-10-10 《深入浅出Oracle》一书重印
- 2006-10-10 张靓颖专辑《The One》将于明日发售
- 2006-10-10 Oracle HowTo:查询Oracle各组件的版本信息
- 2005-10-10 Oracle9i新特点-在spfile中设置Event事件
- 2005-10-10 Oracle9i新特点-判断是否使用了spfile
- 2005-10-10 Oracle9i新特点-从自动备份中恢复spfile和控制文件
- 2005-10-10 Oracle9i新特点-如何修改Spfile的参数
- 2005-10-10 Oracle9i新特点:SPFILE的使用
- 2005-10-10 Oracle10gR2 New Feature:CVU(Cluster Verification Utiltiy)