[多线程]互斥锁与信号量的区别

互斥锁

  互斥锁是一种保护机制。上锁后其他线程不能进入保护区域的代码,直到锁被释放。

信号量

  信号量是一种同步机制。信号量的值代表可用的资源数目,当值大于0代表有可用资源,则允许继续操作,否则线程阻塞,等待可用资源。

当可用资源是1时,信号量与互斥锁基本没区别,都起保护作用。当资源数大于1,则当信号量大于0时线程都可进行操作。如果资源大于1时使用互斥锁,则就算资源数大于1时,也只能有一个线程进入操作,其余线程必须阻塞。

信号量可用于进程通信和线程通信,而互斥锁只能用于线程通信。

posted @ 2013-06-19 17:04  iyjhabc  阅读(424)  评论(0编辑  收藏  举报