atomic包中的類概述

2021-08-21 11:47:00 字數 1901 閱讀 3151

這是乙個小工具包,他的實際作用是提供了很多個無阻塞

執行緒安全的變數操作工具。

無阻塞的執行緒安全:其含義就是不使用synchronize,而使用volatile+cas的方式實現。類描述

atomicboolean

針對乙個 boolean 型別的變數做原子更新操作。

atomicinteger

針對乙個 int 型別的變數做原子更新操作。

atomicintegerarray

針對乙個 int 陣列型別的變數做原子更新操作。

atomicintegerfieldupdater

用反射的方式,可以對指定類的指定的 (volatile型別)int型別 的字段進行原子更新。

atomiclong

針對乙個 long 型別的變數做原子更新操作。

atomiclongarray

針對乙個 long 陣列型別的變數做原子更新操作。

atomiclongfieldupdater

用反射的方式,可以對指定類的指定的(volatile型別)long型別 的字段進行原子更新。

atomicmarkablereference

利用標記的形式記錄了每次改變以後的引用物件,內部是乙個二元組【引用,boolean】

atomicreference

針對乙個 物件引用 型別的變數做原子更新操作。

atomicreferencearray

針對乙個 物件陣列引用 型別的變數做原子更新操作。

atomicreferencefieldupdater

用反射的方式,可以對指定類的指定的(volatile型別)引用型別字段進行

原子更新。

atomicstampedreference

利用版本戳的形式記錄了每次改變以後的引用物件,內部是乙個二元組【引用,int】

doubleaccumulator

基於striped64實現高併發double型別累加(重置初始值為0)

doubleadder

基於striped64實現高併發double型別累加

longaccumulator

基於striped64實現高併發long型別累加(重置初始值為0)

longadder

基於striped64實現高併發long型別累加

atomic包的簡單總結

我們知道synchronized 關鍵字採用的是悲觀鎖的方式實現同步,但這對併發性的影響較大。atomic包提供了一系列的操作簡單 效能高效並能保證執行緒安全的類去更新基本型別變數 陣列元素 引用型別等。atomic包下的這些類都是採用的是樂觀鎖策略去原子更新資料,使用cas操作具體實現。1.cas...

C 中 atomic和mutex的效率

由於 哪怕是對乙個bool型變數的賦值和讀取都不保證原子性 所以在併發環境下,操作可能產生data race的變數需要人為的加以保護。常用的措施 那麼這兩種措施效率如何呢?atomic形式 可以得出結論,atomic的形式的效率在臨界區操作不複雜的情況下,要比互斥量的效率高很多。include in...

C 中string類的用法概述

basic string compare 如果所比較的兩個string 相等,則返回0 操作string 大於引數string,返回 正數 操作string 小於引數string,返回負數。1 比較操作string 與 str 或c string ptr int compare const basi...