1

Unsafe类功能之(4): CAS操作

  • 比较交换对象指定内存偏移量处的int类型值

认为 内存中对象o所在的内存空间, 定位到偏移量offset处, 能找到有int类型的属性, 且其值为expected, 若前面的这些条件成立, : 把对象o此处的 int 类型值 expected, 更新为新值 x;

public final native boolean compareAndSwapInt(Object o, long offset, int expected, int x); 
  • 比较交换对象指定内存偏移处对应的long

认为 内存中对象o所在空间的相对偏移量offset所在处, 有long类型的属性, 且其值为expected, 若前面的条件成立, : 把对象o此处的long类型值 expected, 更新为新值 x;

public final native boolean compareAndSwapLong(Object o, long offset, long expected, long x);
  • 比较交换对象内存偏移对应的引用类型值

认为 内存中对象o所在空间的相对偏移量offset所在处, 有Object类型的属性, 且其值为expected, 若前面的条件成立, : 把对象o此处的 Object 值 expected, 更新为新值 x;

public final native boolean compareAndSwapObject(Object o, long offset, Object expected, Object x); 


丰木
322 声望19 粉丝

遇见超乎想象的自己!