根据操作的目标数据类型,可以将JUC包中的原子类分为4类:基本原子类、数组原子类、原子引用类和字段更新原子类。
JDK提供的原子类位于 rt.jar 下的 **java.util.current.atomic** 包下
基本原子类
基本原子类的功能是通过原子方式更新Java基础类型变量的值。
- AtomicInteger:整型原子类。
- AtomicLong:长整型原子类。
-
数据原子类
数组原子类的功能是通过原子方式更数组中的某个元素的值。
AtomicIntegerArray:整型数组原子类。
- AtomicLongArray:长整型数组原子类。
AtomicReferenceArray:引用类型数组原子类。
引用原子类
AtomicReference:引用类型原子类。
- AtomicMarkableReference:带有更新标记位的原子引用类型。
AtomicStampedReference:带有更新版本号的原子引用类型。 :::info AtomicMarkableReference类将boolean标记与引用关联起来,可以解决使用AtomicBoolean进行原子更新时可能出现的ABA问题。
AtomicStampedReference类将整数值与引用关联起来,可以解决使用AtomicInteger进行原子更新时可能出现的ABA问题。 :::字段更新原子类
AtomicIntegerFieldUpdater:原子更新整型字段的更新器。
- AtomicLongFieldUpdater:原子更新长整型字段的更新器。
- AtomicReferenceFieldUpdater:原子更新引用类型中的字段。
