并发(CAS ABA问题)07

CAS

public class Hsss {
    public static void main(String[] args) {
        AtomicInteger atomicInteger=new AtomicInteger(201);
        //CAS compareAndSet 比较并交换
        //如果我期望的值达到了,那么就更新,否则,就不更新
        atomicInteger.compareAndSet(201,200);
        System.out.println(atomicInteger.get());
    }
}

缺点︰
1、循环会耗时
2、一次性只能保证一个共享变量的原子性

3、ABA问题

ABA

左边的改动后  右边得又改动回来但是传给下面的以后下面的程序不知道它已经改变了。

并发(CAS ABA问题)07_第1张图片


 

你可能感兴趣的:(java,开发语言)