一、包结构
1、
原子更新基本类型类
AtomicInteger
AtomicLong
AtomicBoolean
2、原子更新数组类
AtomicIntegerArray:原子更新整型数组里的元素。
AtomicLongArray:原子更新长整型数组里的元素。
AtomicReferenceArray:原子更新引用类型数组里的元素
3、原子更新引用类型
AtomicReference:原子更新引用类型。
AtomicReferenceFieldUpdater:原子更新引用类型里的字段。
AtomicMarkableReference:原子更新带有标记位的引用类型。可以原子的更新一个布尔类型的标记位和引用类型
AtomicStampedReference
二、中心思想
1、volatitle
2、cas
通过线程之间信息同步、CPU指令,加上乐观锁性质,保证原子操作
三、针对ABA问题
•AtomicStampedReference
•对象引用+版本号(时间戳)或者refrence+stamp
•AtomicMarkableReference
•对象引用+boolean