1. 程式人生 > 其它 >Java多執行緒—原子類

Java多執行緒—原子類

原子性

原子性是指一個事物的操作是不可分割的,要麼都發生,要麼都不發生。原子是不可分割的最小單位

Java原子類

概述:java從JDK1.5開始提供了java.util.concurrent.atomic 包(簡稱Atomic包),這個包中的原子操作類提供了一種用法簡單,效能高效,執行緒安全地更新一個變數的方式。

atomic包裡面一共提供了13個類,分為4種類型,分別是:原子更新基本型別,原子更新陣列,原子更新引用,原子更新屬性。

對於是需要簡單的遞增或者遞減的需求場景,使用synchronized關鍵字和lock固然可以實現,但程式碼寫的會略顯冗餘,且效能會有影響,此時用原子類更加方便。

原子更新基本型別類

常用的API方法:

// 以原子方式將給定值與當前值相加,可用於執行緒中的計數使用,(返回更新的值)。
int addAndGet(int delta)

// 以原子方式將給定值與當前值相加,可用於執行緒中的計數使用,(返回以前的值)
int getAndAdd(int delta)

// 以原子方式將當前值加 1(返回更新的值)
int incrementAndGet()

// 以原子方式將當前值加 1(返回以前的值)
int getAndIncrement() 

// 以原子方式設定為給定值(返回舊值)
int getAndSet(int newValue)

// 以原子方式將當前值減 1(返回更新的值)
int decrementAndGet() :

// 以原子方式將當前值減 1(返回以前的值)
int getAndDecrement()

// 獲取當前值
get()