原子类-AtomicInteger类源码分析

本节介绍AtomicInteger类源码


首先,AtomicInteger类继承了Number抽象类,Integer也继承了Number抽象类。

内部维护了一个int数据,且被volatile修饰:

private volatile int value;

常用的方法:

1.getAndSet

    /**
     * Atomically sets to the given value and returns the old value.
     *
     * @param newValue the new value
     * @return the previous value
     */
    public final int getAndSet(int newValue) {
        return unsafe.getAndSetInt(this, valueOffset, newValue);
    }

2.getAndIncrement,也就是常用的i++操作

    /**
     * Atomically increments by one the current value.
     *
     * @return the previous value
     */
    public final int getAndIncrement() {
        return unsafe.getAndAddInt(this, valueOffset, 1);
    }

由此可见,AtomicInteger使用的Unsafe的CAS指令实现原子操作的。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章