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

  1. 比较交换对象指定内存偏移量处的int类型值
  2. 比较交换对象指定内存偏移处对应的long值
  3. 比较交换对象内存偏移对应的引用类型值

比较交换对象指定内存偏移量处的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); 


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 hi@niewj.com

×

喜欢就点赞,疼爱就打赏