AtomicInteger線程安全的操作加減

參考鏈接:http://blog.csdn.net/u012734441/article/details/51619751

AtomicInteger,一個提供原子操作的Integer的類。在Java語言中,++i和i++操作並不是線程安全的,在使用的時候,不可避免的會用到synchronized關鍵字。而AtomicInteger則通過一種線程安全的加減操作接口。

下面通過簡單的例子對比來看一下 AtomicInteger 的強大的功能

class Counter {
    private volatile int count = 0;

    public synchronized void increment() {
        count++; // 若要線程安全執行執行count++,需要加鎖
    }

    public int getCount() {
        return count;
    }
}

class Counter {
    private AtomicInteger count = new AtomicInteger();

    public void increment() {
        count.incrementAndGet();
    }

    // 使用AtomicInteger之後,不需要加鎖,也可以實現線程安全。
    public int getCount() {
        return count.get();
    }
}

AtomicInteger常用接口:

 //獲取當前的值
 public final int get()

 //取當前的值,並設置新的值
 public final int getAndSet(int newValue)

 //獲取當前的值,並自增
 public final int getAndIncrement() 

 //獲取當前的值,並自減
 public final int getAndDecrement()

 //獲取當前的值,並加上預期的值
 public final int getAndAdd(int delta)
發佈了44 篇原創文章 · 獲贊 66 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章