JUC中的原子類總結

2021-09-13 18:58:03 字數 718 閱讀 4325

atomic原子類介紹:

atomic 是指乙個操作是不可中斷的。即使是在多個執行緒一起執行的時候,乙個操作一旦開始,就不會被其他執行緒干擾。

分類:根據操作的資料型別,可以分為4類:

基本資料型別:

陣列型別

使用原子的方式更新陣列裡的某個元素

引用型別

物件的屬性修改型別

通過乙個簡單例子帶大家看一下基本資料型別原子類的優勢

①多執行緒環境不使用原子類保證執行緒安全(基本資料型別)

class test 

public int getcount()

}

②多執行緒環境使用原子類保證執行緒安全(基本資料型別)

class test2 

//使用atomicinteger之後,不需要加鎖,也可以實現執行緒安全。

public int getcount()

}

atomicinteger 類主要利用 cas (compare and swap) + volatile 和 native 方法來保證原子操作,從而避免 synchronized 的高開銷,執行效率大為提公升。

JUC包下的原子類的實現方法

class accountsafe implements account override public integer getbalance override public void withdraw integer amount 可以簡化為下面的方法 balance.addandget 1 am...

JUC 4 0 原子類 介紹及基本使用

在併發程式設計中,原子類也是經常使用的乙個工具,利用原子類,可以把一些操作變成乙個原子操作,在多執行緒的情況下不需要加鎖也可以保證執行緒安全 原子類的作用跟鎖是類似的,都是為了保證在併發環境下的執行緒安全,原子類相比於鎖,有一定的優勢 鎖的粒度更細 原子類可以把競爭範圍縮小到變數級別,通常我們手動加...

Java單例模式結合JUC原子類爆發的新想法

單例模式是23種設計模式中的一種,關於它的介紹,已經數不勝數了,一般網上的實現方式無非是什麼懶漢式,餓漢式,內部類,列舉,volatile加雙重校驗鎖等等,今天我又想到乙個新的實現方式,利用j.u.c提供的原子類,如下 class singleton public static singleton ...