自旋锁

2018-08-02  本文已影响0人  kindol

竞争资源时,总有进程获得对象,而对于没获得资源的进程的处理就有各种不同的解决方法了,我们可以使没获得锁的进程

自旋锁原理

跟互斥锁一样,一个执行单元要想访问被自旋锁保护的共享资源,必须先得到锁,在访问完共享资源后,必须释放锁。如果在获取自旋锁时,没有任何执行单元保持该锁,那么将立即得到锁;如果在获取自旋锁时锁已经有保持者,那么获取锁操作将自旋在那里,直到该自旋锁的保持者释放了锁。

这样可能导致会占用过多的CPU资源,如果不加限制,单cpu的时候自旋锁会让其它process动不了

自旋锁比较适用于锁使用者保持锁时间比较短的情况。正是由于自旋锁使用者一般保持锁时间非常短,因此选择自旋而不是睡眠是非常必要的,自旋锁的效率远高于互斥锁。

应用

CAS(LOCK前缀指令)、原子包

上一篇 下一篇

猜你喜欢

热点阅读