自旋锁

自旋锁

1,自旋锁

多线程同步的一种锁,线程反复检查锁是否可用,由于线程在这一个过程中一直执行,所以为忙等待。一旦获取了自旋锁,线程会一直保持该锁,直至显式释放自旋锁。获取不到锁的会一直循环。

优点:

避免了上下文调度开销,线程一直处于用户态,适用于线程只会阻塞很短的场景。

cas 乐观锁

比较并替换【系统级原子操作】

三个角色

需要读写的内存值V

进行比较的值A

要写入的新值B

当且仅当 V 的值等于 A时,CAS通过原子方式用新值B来更新V的值,否则不会执行任何操作(比较和替换是一个原子操作)。一般情况下是一个自旋操作,即不断的重试。

 

发表评论