Java多執行緒—原子類
阿新 • • 發佈:2022-04-21
原子性
原子性是指一個事物的操作是不可分割的,要麼都發生,要麼都不發生。原子是不可分割的最小單位
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()