CAS锁机制

  • CAS是 Compare and swap 的缩写
  • CPU会原子性地执行下面的逻辑
    • 比较内存位置 V 的当前值是否与预期原值相等
    • 如果相等,说明该值没有被其他线程修改过,就将内存位置V的值更新为B
    • 如果不相等,就不执行操作
    • 返回 成功/失败 来判断下一步
  • 原子性保证:CPU 硬件进行保证,意味着在执行期间不会被其他线程中断,避免数据竞争问题

volatile 关键字

  • Atomic 类内部存储值的成员用 volatile 修饰,这是 CAS 要求的