其基本的特性就是在多線程環境下,當有多個線程同時執行這些類的實例包含的方法時,具有排他性,即當某個線程進入方法,執行其中的指令時,不會被其他線程打斷,而別的線程就像自旋鎖一樣,一直等到該方法執行完成,才由JVM從等待隊列中選擇一個另一個線程進入,這只是一種邏輯上的理解。實際上是借助硬件的相關指令來實現的,不會阻塞線程(或者說只是在硬件級別上阻塞了)。
1. 原子更新基本類型
AtomicBoolean: 原子更新布爾類型。 AtomicInteger: 原子更新整型。 AtomicLong: 原子更新長整型。
2. 原子更新數組
AtomicIntegerArray: 原子更新整型數組里的元素。 AtomicLongArray: 原子更新長整型數組里的元素。 AtomicReferenceArray: 原子更新引用類型數組里的元素。
3. 原子更新引用類型
AtomicIntegerFieldUpdater: 原子更新整型的字段的更新器。 AtomicLongFieldUpdater: 原子更新長整型字段的更新器。 AtomicStampedFieldUpdater: 原子更新帶有版本號的引用類型。AtomicReferenceFieldUpdater: 上面已經說過此處不在贅述
4. 原子更新字段類
AtomicReference: 原子更新引用類型。 AtomicStampedReference: 原子更新引用類型, 內部使用Pair來存儲元素值及其版本號。 AtomicMarkableReferce: 原子更新帶有標記位的引用類型。