7. 原子操作类
- Atomic原子类基本上都是Unsafe实现的包装类。
- 操作原子类是线程安全、性能高效的更新变量的方式。
原子更新基本数据类型:
AtomicInteger
整型AtomicLong
长整型AtomicBoolean
布尔型
Unsafe只提供三种CAS方法,compareAndSwapObject、compareAndSwapInt、compareAndSwapLong。而AtomicBoolean则转换为整型,原子更新char、float、double也可以用类似的思路实现。
原子更新数组类型:
AtomicIntegerArray
原子更新整形数组里的元素AtomicLongArray
原子更新长整型数组里的元素AtomicReferenceArray
原子更新引用类型数组里的元素
原子更新引用类型:
AtomicReference
原子更新引用类型AtomicReferenceFieldUpdater
原子更新引用类型里的字段AtomicMarkableReference
原子更新带有标记位的引用类型
原子更新字段类:
AtomicIntegerFieldUpdater
原子更新整型字段的更新器AtomicLongFieldUpdater
原子更新长整型字段的更新器AtomicStampedReference
原子更新带有版本号的引用类型