到底什么事 CAS
compare and swap 也就是比较和交换,他是一条 CPU 的并发原语。
他在替换内存的某个位置的值时,首先查看内存中的值与预期值是否一致,如果一致,执行替换操作。这个操作是一个原子性操作。
Java中基于 Unsafe 的类提供了对 CAS 的操作的方法,JVM 会帮助我们将方案实现 CAS 汇编指令。
但是要清楚 CAS 只是比较和交换,在获取原值的这个操作上,需要你自己实现。