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