Java原子操作類 AtomicInteger的用法

1、AtomicInteger基本介紹

java.util.concurrent.atomic 的包AtomicBoolean,AtomicInteger,AtomicLong,AtomicLongArray,AtomicReference等原子類的類,主要用于在高并發(fā)環(huán)境下的高效程序處理,幫助我們簡化同步處理.

在Java語言中,++i和i++操作并不是線程安全的,在使用的時候,不可避免的會用到synchronized關(guān)鍵字。而AtomicInteger則通過一種線程安全的加減操作接口。

2、AtomicInteger的基本常用方法

public class AtomicIntengerDemo {

public static void main(String[] args) {

AtomicInteger ai =new AtomicInteger(10);

//獲取自增后的值

? ? ? ? int a = ai.incrementAndGet();

//獲取自增之前的值

? ? ? ? int a1 = ai.getAndIncrement();

//獲取自減后的值

? ? ? ? int a2 = ai.decrementAndGet();

//獲取自減前的值

? ? ? ? int a3 = ai.getAndDecrement();

//獲取當(dāng)前的值

? ? ? ? int a4 = ai.get();

//先相加再取值

? ? ? ? int a5 = ai.addAndGet(15);

//先取值再相加

? ? ? ? int a6 = ai.getAndAdd(15);

//改變當(dāng)前的值

? ? ? ? ai.set(55);

//獲得改變之前的值

? ? ? ? int a7 = ai.getAndSet(10);

//也就是說如果當(dāng)前值等于10,就改變當(dāng)前值為15,返回true反之返回false并且不對值進行修改

//相當(dāng)于

?// if (this == expect) {

//? ? this = update

//? ? return true;

//} else {

//? ? return false;

//}

? ? ? ? boolean a8 = ai.compareAndSet(10,15);

System.out.println(a8+"----"+ai.get());

}

}

AtomicBoolean,AtomicLong,AtomicLongArray? 等操作類方法與AtomicInteger基本一致,這里不做演示

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容