原子操作CAS

sync是基于阻塞的锁的机制。1.被阻塞的线程优先级很高。2拿到锁的线程一直不释放怎么办?3.大量的线程竞争消耗CPU,同时带来死锁和其他安全

CAS的原理
CAS(compare and swap),指令级别保证这是一个原子操作。

三个运算符:一个内存地址V,一个期望的值A,一个新值B。

基本思路:如果地址V上的值和期望的值A相等,就给地址V赋给新值B。如果不是,不做任何操作

循环(自旋)里不断的进行CAS操作。

CAS的问题:
1.ABA问题:

猜你喜欢

转载自blog.csdn.net/qq_39141360/article/details/88541285