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

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

(1)原子更新基本类型

(2)原子更新数组

(3)原子更新引用

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

7.1 原子更新基本类型

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

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

(2)原子更新整形:AtomicInteger

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


AtomicInteger

7.2 原子更新数组

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

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

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


AtomicIntegerArray

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

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


7.3 原子更新引用类型

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

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

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


AtomicReference

7.4 原子更新字段

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

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

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

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

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

AtomicField
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容