似乎自旋锁并没有那么好,因为它们在等待(阻塞)时会浪费 CPU 周期。 如果线程在等待信号唤醒时只是进入休眠状态,那么 CPU 周期在自旋时不会丢失。
如果锁的持有时间很短,也许使用自旋锁会更好,那么它使用的时间可能会更少?如果这是真的,为什么?
最佳答案
是的,没错。
因为上下文切换很昂贵。操作系统和 CPU 必须做(相对)大量的工作来执行上下文切换。相反,旋转几个周期会便宜很多,即使这些周期在理论上是浪费的。
关于cpu - 什么时候使用自旋锁是个好主意?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5024914/