原子类
不可分割、一个操作中完成,不可中断,在多线程情况下也可保证,在java.util.concurrent.atomic中
原子类的作用和锁类似,为了保证并发情况下的线程安全
粒度更细:原子变量吧竞争范围缩小到变量级别
效率更高:使用原子类的效率会比使用锁的效率更高
基本类型
类型 | 具体类 |
---|---|
Atomic* 基本类型原子类 | AtomicBoolean、AtomicInteger、AtomicLong |
Atomic* Array数组类型原子类 | AtomicIntegerArray、AtomicLongArray、AtomicReferenceArray |
Atomic* Reference引用类型原子类 | AtomicMarkableReference、AtomicStampedReference、AtomicReference |
Atomic* FieldUpdater升级类型原子类 | AtomicIntegerFieldUpdater、AtomicLongFieldUpdater、AtomicReferenceFieldUpdater |
Adder累加器 | DoubleAdder、LongAdder |
Accumulator积累器 | DoubleAccumulator、LongAccumulator |
常用方法
AtomicInteger
AtomicArray
AtomicReference
AtomicFieldUpdate
LongAdder
LongAccumulator