原子類-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指令實現原子操作的。


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