Atomic系列类整体介绍

2022-10-10,,


本博客系列是学习并发编程过程中的记录总结。由于文章比较多,写的时间也比较散,所以我整理了个目录贴(传送门),方便查阅。


本文是转载文章,原文请见,文章主要对java.util.concurrent.atomic开发包下的类进行整体概述与类别划分。

版本说明

在jdk1.5版本之前,多行代码的原子性主要通过synchronized关键字进行保证。

在jdk1.5版本,java提供了原子类型专门确保变量操作的原子性。

开发包整体说明

原子类型位于java.util.concurrent.atomic包下,其主要类如下:

其类图关系如下:

原子类型划分

为了方面对这些类逐级掌握,我将这些原子类型分为以下几类:

  • 普通原子类型:提供对boolean、int、long和对象的原子性操作。
    • atomicboolean
    • atomicinteger
    • atomiclong
    • atomicreference
  • 原子类型数组:提供对数组元素的原子性操作。
    • atomiclongarray
    • atomicintegerarray
    • atomicreferencearray
  • 原子类型字段更新器:提供对指定对象的指定字段进行原子性操作。
    • atomiclongfieldupdater
    • atomicintegerfieldupdater
    • atomicreferencefieldupdater
  • 带版本号的原子引用类型:以版本戳的方式解决原子类型的aba问题。
    • atomicstampedreference
    • atomicmarkablereference
  • 原子累加器(jdk1.8):atomiclong和atomicdouble的升级类型,专门用于数据统计,性能更高。
    • doubleaccumulator
    • doubleadder
    • longaccumulator
    • longadder

《Atomic系列类整体介绍.doc》

下载本文的Word格式文档,以方便收藏与打印。