技术定位
CAS的实现都是CPU指令实现的,和Java语言无关,但是和CPU指令交互需要一个类,Java
开发者可以调用这个类从而实现调用CPU指令,这个类就是Unsafe.
源码讲解
native boolean compareAndSwapInt(Object var1, long var2, int var4, int var5);
首先方法被native修饰,具体实现是jdk自身处理,我们不必关系,重点关心输入 ,输出
输入
Object var1 要操作的对象
long var2 偏移量,借助它就可以获取到 value 的数值
int var4 期望值,认为当前变量的值
int var5 修改的数值
var1 和 var2 个人认为使用来实际计算内存里面的值,var4是我目前认为的值,两个相同
则更新当前值为 var5
输出
boolean 是否更新成功