Atomic Class
Last updated
Last updated
原子类是通过无锁方案(CAS)实现的。
AtomicBoolean
AtomicInteger
AtomicLong
AtomicReference:会有 ABA 问题。
AtomicStampedReference:无 ABA 问题,CAS 方法增加了版本号参数。
AtomicMarkableReference:无 ABA 问题,将版本号简化成了一个 Boolean 值。
可以原子化地更新数组里面的每一个元素。与基本数据类型的区别是:每个方法多了一个数组的索引参数。
AtomicIntegerArray
AtomicLongArray
AtomicReferenceArray
可以原子化地更新对象的属性。与基本数据类型的区别是:每个方法多了一个对象引用参数。
AtomicIntegerFieldUpdater
AtomicLongFieldUpdater
AtomicReferenceFieldUpdater
对象属性必须是 volatile 类型的,只有这样才能保证可见性。否则会抛出 IllegalArgumentException。
用来执行累加操作,相比原子化的基本数据类型,速度更快。但是不支持 compareAndSet() 方法。
DoubleAccumulator
DoubleAdder
LongAccumulator
LongAdder