自旋锁vs互斥锁睡眠锁

时间:2015-04-17 05:26:23

标签: locking mutex spinlock

旋转锁(繁忙的等待锁)比非常短的睡眠锁更有效 关键部分。假设系统的上下文切换时间(它花费的时间) 保存当前进程并加载下一个)是时间T.关键部分可以多长时间 在使用互斥锁睡眠锁而不是旋转锁更有效之前?

1 个答案:

答案 0 :(得分:0)

这取决于具体情况。你愿意在旋转时更快地唤醒多少CPU时间?
英特尔曾经说过20个周期。但是很久以前,这个时代的线程比核心要多得多
如果您的等待线程对您来说非常关键,那么它就拥有自己的专用核心,您不会为了最快速的唤醒而永远旋转。
如果它不那么重要,并且核心与其他线程共享,您可能希望将cpu时间提供给其他线程。如果你不这样做,操作系统最终会为你做这件事,但这显然不是最佳的
底线 - 测试并查看性能差异,然后重新迭代,重新测试等。