CAS(compareAndSwap)

比较并替换;比较工作内存中的值与主存中的值,如果这个值是期望的,则执行操作,否则返回false;自旋循环的原因是:原子类本身的循环代码导致。

CAS缺点

  1. 循环会耗时
  2. 一次性只能保证一个一个共享变量的原子性
  3. ABA问题

    ABA问题(狸猫换太子)

    image.png
    image.png