java.util.concurrent.atomic中的类可以分成4组:

标量类:AtomicBoolean,AtomicInteger,AtomicLong,AtomicReference
数组类:AtomicIntegerArray,AtomicLongArray,AtomicReferenceArray
更新器类:AtomicLongFieldUpdater,AtomicIntegerFieldUpdater,AtomicReferenceFieldUpdater
复合变量类:AtomicMarkableReference,AtomicStampedReference

第一组AtomicBoolean...

内部实现使用高效的方式CAS(compare and swap) + volatile和native方法,从而避免了synchronized的高开销,执行效率大为提升。

第二组AtomicIntegerArray...

内部并不是像AtomicInteger一样维持一个valatile变量,而是全部由native方法实现。

第三组AtomicLongFieldUpdater...

基于反射的实用工具,可以对指定类的指定volatile字段进行原子更新。

第四组AtomicStampedReference...

给数据加版本信息,解决ABA问题。


怒放的生命
22 声望1 粉丝