gpt4 book ai didi

operating-system - 何时使用 MCS 锁

转载 作者:行者123 更新时间:2023-12-01 10:47:15 36 4
gpt4 key购买 nike

我一直在阅读 MCS 锁,我觉得它很酷。现在我知道它是如何实现的,下一个问题是何时使用它。下面是我的想法。请随时将项目添加到列表中

1) 理想情况下应该在我们想要同步的线程超过 2 个时使用
2) MCS 锁减少了必须失效的缓存行的数量。在最坏的情况下,2 个 CPU 的缓存行无效。

还有什么我想念的吗?

MCS 也可以用来实现互斥锁而不是自旋锁吗?

最佳答案

当存在高锁争用时,代码将受益于使用 MCS 锁,即许多线程同时尝试获取锁。当使用简单的自旋锁时,所有线程都轮询单个共享变量,而 MCS 形成一个等待线程队列,这样每个线程都在 上轮询。其前身在队列中。由于等待是“本地”执行的,因此缓存一致性要轻得多。

使用 MCS 来实现互斥锁并没有什么意义。
在互斥锁中,等待线程通常是 排队 由操作系统并取消计划,因此没有任何轮询。例如查看 pthread's mutex implementation .

关于operating-system - 何时使用 MCS 锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24464954/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com