1. 程式人生 > >AtomicInteger執行緒安全的操作加減

AtomicInteger執行緒安全的操作加減

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)