demo
public class CASDemo { public static void main(String[] args) { AtomicInteger atomicInteger = new AtomicInteger(5); System.out.println(atomicInteger.compareAndSet(5,2022)+"\t"+atomicInteger.get()); System.out.println(atomicInteger.compareAndSet(5,2022)+"\t"+atomicInteger.get()); } }
结果
底层调用:
为什么cas可以不加锁保证数据一致性
硬件级别的保证
源码分析
调用native方法。