高并发(12)-原子操作类的使用
2020-04-05 本文已影响0人
残冬十九
@TOC
前言
上篇文章讲解了什么是原子操作,并且怎么实现原子操作。今天就讲一下原子的操作类
什么是原子操作类
为了针对原子操作,JDK1.5之后java.util.concurrent.atomic包,这个包提供了针对原子操作的原子操作类。
有哪些原子操作类
原子操作类基本分成以下几种:
基本类型
基本类型的原子类有三个分别是AtomicBoolean,AtomicInteger,AtomicLong
- AtomicBoolean是原子更新布尔类型的值
- AtomicInteger是原子更新integer的值
- AtomicLong是原子更新Loong的值
数组类型
数组类型的原子类有三个分别是AtomicIntegerArray,AtomicLongArray,AtomicReferenceArray
- AtomicIntegerArray是原子更新integer类型的数组
- AtomicLongArray是原子更新Long类型的数组
- AtomicReferenceArray是原子更新引用类型类型的数组
引用类型
引用类型的原子类有三个分别是AtomicReference,AtomicMarkableReference,AtomicStampedReference
- AtomicReference是对引用类型的原子操作
- AtomicMarkableReference是对引用类型的原子操作,解决了ABA问题,但是不会关注更新了多少次
- AtomicStampedReference也是对引用类型的原子操作,解决了ABA问题,但是会关注这个值修改了多少次
属性类型
基本类型的原子类有三个分别是AtomicReferenceFieldUpdater,AtomicIntegerFieldUpdater,AtomicLongFieldUpdater
- AtomicReferenceFieldUpdater是对引用类型的属性修改
- AtomicIntegerFieldUpdater是数值型的属性修改
- AtomicLongFieldUpdater是对Long类型的属性修改