gpt4 book ai didi

multithreading - 互斥体与监视器——比较

转载 作者:行者123 更新时间:2023-12-04 19:52:27 28 4
gpt4 key购买 nike

根据我对互斥锁的了解——它们通常提供对共享资源的锁定功能。因此,如果一个新线程想要访问这个锁定的共享资源——它要么退出,要么必须不断轮询锁(并在等待锁时浪费处理器周期)。

但是,监视器具有条件变量,它为等待线程提供了一种更加异步的方式——将它们放在等待队列中,从而不会使它们消耗处理器周期。

这会是监视器优于互斥锁(或任何没有条件变量的通用锁定机制)的唯一优势吗?

最佳答案

互斥量是低级结构。它们只是提供互斥和内存可见性/排序。另一方面,监视器是更高级别的 - 它们允许线程等待应用程序特定条件成立。

因此,在某些情况下,监控器对于简单的锁定/解锁来说是过大的杀伤力,但在大多数情况下,互斥体 单独 是远远不够的 - 所以你会看到它们与一个或多个条件变量一起使用 - 在概念上使用等效的监视器。

关于multithreading - 互斥体与监视器——比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7669541/

28 4 0