自旋锁

自旋锁与互斥量相似,但它不是通过休眠使进程(或线程)阻塞,而是在获得锁之前一直处于忙等(自旋,轮询式的查看锁状态)阻塞状态。

pthread:pthread_spinlock_t

自旋锁可用于一下状况:锁持有的时间短,而且线程并不希望在重新调度上花费太多的成本。

 

很多互斥量的实现非常高效,以至于应用程序采用互斥锁的性能与曾经采用自旋锁的性能基本是相同的。事实上,有些互斥量的实现在试图获取互斥量失败的时候会先自旋一段时间,只有在自旋计数到达某一阈值时才会休眠。这些因素,加上现代处理器的进步,使得上下文切换越来越快,因此自旋锁只有在某些特定的情况下才会用到。

posted @ 2019-07-06 15:38  大白的攻城狮  阅读(153)  评论(0编辑  收藏  举报