前言
上篇文章講解了什麼是原子操作,並且怎麼實現原子操作。今天就講一下原子的操作類
什麼是原子操作類
爲了針對原子操作,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類型的屬性修改