https://www.bilibili.com/video/BV1Sa4y1P7Vd
compare and swap
先从比较和交换的角度,从 Java 端聊到 native 方案,然后讲讲 c++ 中的 cmpschg 指令,再聊聊 lock 指令保证 cmpschg 指令的原子性
比较和交换:
OpenJDK 源码中:unsafe 类
四个参数:哪个对象,哪个属性的内存偏移量,oldValue,newValue
compareAndSwapObject(Object var1, long var2, Object var4, Object var5);
native 方法就是直接调用本地依赖库 c++ 中的方法
CAS 底层通过 lock 指令保证多核 OS 的并发安全