何时使用MCS锁

问题描述 投票:3回答:2

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

1)理想情况下,当我们要同步两个以上线程时,应使用2)MCS锁减少了必须失效的高速缓存行的数量。最坏的情况是2个CPU的高速缓存行无效。

还有什么我想念的吗?

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

我一直在阅读有关MCS锁的信息,我觉得这很酷。现在,我知道它是如何实现的,下一个问题是何时使用它。以下是我的想法。请随时将项目添加到...

operating-system synchronization locking mutex spinlock
2个回答
6
投票

当存在较高的锁争用时,即,许多线程尝试同时获取锁,则代码将受益于使用MCS锁。使用简单的自旋锁时,所有线程都轮询单个共享变量,而MCS形成一个等待线程队列,因此每个线程都在队列中的其前身


0
投票

我认为@ CodeMoneky1的其他答案并没有真正解释“ MCS还能用来实现互斥锁而不是自旋锁吗?”

© www.soinside.com 2019 - 2024. All rights reserved.