【发布时间】:2011-12-01 22:37:47
【问题描述】:
根据我对互斥锁的了解 - 它们通常提供对共享资源的锁定功能。因此,如果一个新线程想要访问这个锁定的共享资源——它要么退出,要么必须不断地轮询锁(并浪费处理器周期等待锁)。
但是,监视器具有条件变量,它为等待线程提供了一种更加异步的方式 - 将它们放在等待队列中,从而不会使它们消耗处理器周期。
这是监视器相对于互斥锁(或任何没有条件变量的通用锁定机制)的唯一优势吗?
【问题讨论】:
-
这准确吗?据我所知,当前所有的操作系统都将互斥操作放在等待队列中。他们没有投票。
-
@ZanLynx:如果没有,我看不到使用监视器而不是互斥锁的优势。
标签: multithreading mutex monitors