自旋锁

Posted 禅道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自旋锁相关的知识,希望对你有一定的参考价值。

使用基于自旋的等待

如果需要等待某个条件满足的时间很短,而且不希望发生上下文切换,基于自旋的【等待】是一种很好的解决方案。

  • SpinWait : 自旋等待

如果发生了长时间的自旋,SpinWait会让出底层的时间片,并触发上下文切换。因为长时间的自旋会阻塞优先级更高的线程。当一个线程自旋时,它会将一个内核放入到一个繁忙的循环中,而且它不会让出处理器时间片的剩余部分。SpinWait的智能逻辑中会在自旋达到足够长的时间时停止自旋并让出处理器。当然可以考虑调用Thread.Sleep()方法,它会让出处理器时间,但开销比较大。

以上是关于自旋锁的主要内容,如果未能解决你的问题,请参考以下文章

自旋锁

自旋锁原理及java自旋锁

自旋锁spinlock解析

五自旋锁(spinlock)

自旋锁

自旋锁