作用:保證併發安全,相比於鎖,具有一定的優勢:
粒度更細:可以把競爭範圍縮小到變數級別
效率更高:除了高度競爭的情況,使用原子類的效率比鎖更高。
可以對普通變數進行公升級
使用場景:偶爾需要get和set操作
注意點:
longadder效率比atomiclong要高。atomiclong 每做一次加法運算都需要同步,,longadder進行分段累加,但是longadder只適合求和計數的場景
功能公升級,不限於加操作
執行緒的執行順序不能影響執行結果
atomicinteger常用方法
getandincrement
getanddecrement
getandadd
compareandset
compare and swap
樂觀鎖併發容器
原子類aba問題 新增版本號
自旋時間長
原子操作與原子型別
多執行緒是併發程式設計中不可或缺的部分,而所謂原子操作,也就是指多執行緒中 最小的且不可並行化的 操作,如果乙個共享資源的操作時原子操作的話,意味著多個執行緒訪問該資源時,有且僅有乙個執行緒在對這個資源進行操作。通常情況下,原子操作都是通過 互斥 來實現的,例如mutex。這種操作在開發當中使用相當...
原子類的 ABA 問題
public class atomicreferencedemo 當有乙個值從 a 改為 b 又改為 a,這就是 aba 問題 public class abademo start new thread catch interruptedexception e atomicreference.com...
JUC中的原子類總結
atomic原子類介紹 atomic 是指乙個操作是不可中斷的。即使是在多個執行緒一起執行的時候,乙個操作一旦開始,就不會被其他執行緒干擾。分類 根據操作的資料型別,可以分為4類 基本資料型別 陣列型別 使用原子的方式更新陣列裡的某個元素 引用型別 物件的屬性修改型別 通過乙個簡單例子帶大家看一下基...