這是乙個小工具包,他的實際作用是提供了很多個無阻塞
的執行緒安全的變數操作工具。
無阻塞的執行緒安全:其含義就是不使用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...