java.util.concurrent.atomic包原子类分为四类:①原子更新基本类型(如atomicinteger);②原子更新数组(如atomicintegerarray);③原子更新引用类型(如atomicreference、atomicstampedreference);④原子更新字段(如atomicintegerfieldupdater),均基于unsafe cas实现。

java.util.concurrent.atomic 包中的原子类按操作目标和数据结构特征,分为以下四类:
原子更新基本类型
针对单个基本值提供线程安全操作,包括:AtomicBoolean、AtomicInteger、AtomicLong
它们支持get、set、compareAndSet、addAndGet、getAndIncrement等原子方法,适用于计数器、状态标志等简单场景。原子更新数组
对数组中某个索引位置的元素进行原子操作,不保证整个数组操作的原子性,包括:AtomicIntegerArray、AtomicLongArray、AtomicReferenceArray
每个方法都带索引参数(如get(int i)、compareAndSet(int i, int expect, int update)),适合需要局部并发更新的数组结构,比如分段计数或缓存槽位管理。原子更新引用类型
支持对对象引用本身做原子更新,并可扩展语义(如带标记或版本号),包括:AtomicReference、AtomicMarkableReference、AtomicStampedReference
其中AtomicMarkableReference关联一个布尔标记(常用于逻辑删除),AtomicStampedReference关联一个整型戳(用于解决 ABA 问题)。原子更新字段(属性)
允许对已有对象的某个 volatile 字段进行原子更新,无需修改类定义,包括:AtomicIntegerFieldUpdater、AtomicLongFieldUpdater、AtomicReferenceFieldUpdater
使用前需确保目标字段被声明为volatile,且 updater 实例通过反射获取;适合在无法改造原有类时增强并发安全性。
这四类覆盖了从简单变量到复杂对象结构的常见并发更新需求,底层统一基于 Unsafe 的 CAS 指令实现,避免锁开销,但仅适用于单变量粒度的原子操作。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











