欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Atomic系列类整体介绍

程序员文章站 2022-06-15 14:37:23
本博客系列是学习并发编程过程中的记录总结。由于文章比较多,写的时间也比较散,所以我整理了个目录贴(传送门),方便查阅。 "并发编程系列博客传送门" 本文是转载文章,原文请见 "此博客" ,文章主要对 开发包下的类进行整体概述与类别划分。 版本说明 在JDK1.5版本之前,多行代码的原子性主要通过sy ......

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


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

版本说明

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

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

开发包整体说明

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

Atomic系列类整体介绍

其类图关系如下:

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