UnSafe CAS 操作

UnSafe

乐观锁

  • CAS 原子操作

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);
posted @ 2024-04-15 13:50  贺艳峰  阅读(8)  评论(0编辑  收藏  举报