UnSafe
乐观锁
compareAndSwapInt
- 从var1对象的起始指针移动var2位,如果该位置上存储的值等于var4,那么将该值修改成var5
- var1 比较对象
- var2 指针偏移量
- var4 条件值
- var5 新值
public final native boolean compareAndSwapInt(Object var1, long var2, int var4, int var5);
getObjectVolatile
- 获取当前对象var1在该对象指定偏移量var2上的值
public native Object getObjectVolatile(Object var1, long var2);
putObject
- 修改对象var1上偏移var2后位置上的值为var4
public native void putObject(Object var1, long var2, Object var4);
objectFieldOffset
- 获取当前对象var1字段在该对象的偏移量
- var1:对象中的字段
public native long objectFieldOffset(Field var1);