美文网首页
ActomicInteger源码解析

ActomicInteger源码解析

作者: niar | 来源:发表于2018-09-05 07:09 被阅读0次
    public final int incrementAndGet() {
            for (;;) {
                int current = get();
                int next = current + 1;
                if (compareAndSet(current, next))
                    return next;
            }
        }
    
    public final boolean compareAndSet(int expect, int update) {
    
            return unsafe.compareAndSwapInt(this, valueOffset, expect, update);
    
        }
    Unsafe里的CAS操作相关:
    //第一个参数o为给定对象,offset为对象内存的偏移量,通过这个偏移量迅速定位字段并设置或获取该字段的值,
    //expected表示期望值,x表示要设置的值,下面3个方法都通过CAS原子指令执行操作。
    public final native boolean compareAndSwapObject(Object o, long offset,Object expected, Object x);                                                                                                  
     
    public final native boolean compareAndSwapInt(Object o, long offset,int expected,int x);
    
    public final native boolean compareAndSwapLong(Object o, long offset,long expected,long x);
    
    

    相关文章

      网友评论

          本文标题:ActomicInteger源码解析

          本文链接:https://www.haomeiwen.com/subject/arsowftx.html