Chapter 7 Java中的13个原子操作类

由于变量的类型有很多种,所以在atomic包中一共提供了13个类,属于4种类型的原子更新方式:

(1)原子更新基本类型

(2)原子更新数组

(3)原子更新引用

(4)原子更新属性(字段)

7.1 原子更新基本类型

使用原子的方式更新基本类型,atomic包提供了以下3个类:

(1)原子更新布尔值:AtomicBoolean

(2)原子更新整形:AtomicInteger

(3)原子更新长整形:AtomicLong


Chapter 7 Java中的13个原子操作类_第1张图片
AtomicInteger

7.2 原子更新数组

(1)原子更新整形数组里的元素:AtomicIntegerArray

(2)原子更新长整形数组里的元素:AtomicLongArray

(3)原子更新引用类型数组里的元素:AtomicReferenceArray


Chapter 7 Java中的13个原子操作类_第2张图片
AtomicIntegerArray

需要注意的是,数组通过构造方法AtomicIntegerArray(int [ ] array)传递进去,AtomicIntegerArray会将当该数组复制一份,所以不会修改原有数组。

而构造函数AtomicIntegerArray(int size)会创建一个新的大小为size的int 数组。


7.3 原子更新引用类型

(1)AtomicReference:原子更新引用类型

(2)AtomicReferenceFieldUpdater:原子更新引用类型的字段

(3)AtomicMarkableReference:原子更新带有标记位的引用类型


Chapter 7 Java中的13个原子操作类_第3张图片
AtomicReference

7.4 原子更新字段

(1)AtomicIntegerFieldUpdater:原子更新整形的字段

(2)AtomicLongFieldUpdater:原子更新长整形的字段

(3)AtomicStampedReference:原子更新带有版本号的引用类型,可用于原子的更新数据和数据的版本号。

想要原子的更新字段需要两步,(1)使用newUpdater创建一个更新器,设置想要更新的类和属性。

(2)更新类的属性和字段必须使用public volatile修饰。

Chapter 7 Java中的13个原子操作类_第4张图片
AtomicField

你可能感兴趣的:(Chapter 7 Java中的13个原子操作类)