当程序更新一个变量时,如果多个线程同时更新这个变量,则可能会出现线程安全的问题。为了解决线程安全问题,可以用synchronized同步代码块或者synchronized同步方法。除此之外,还有一种方式,那就是原子操作类来操作变量。
Java中一共有12个原子操作类,名字都是以Atomic打头,都在java.util.concurrent.atomic包下,可以分为4种类型,每种类型各有3个类:
1.操作基本类型的原子操作类
AtomicBoolean
AtomicInteger
AtomicLong
见以下示例:
2.原子更新数组:
AtomicIntegerArray
AtomicLongArray
AtomicReferenceArray
3.原子更新引用类型
AtomicReference
AtomicMarkableReference
AtomicStampedReference
4.原子更新字段类
AtomicIntegerFieldUpdater
AtomicLongFieldUpdater
AtomicReferenceFieldUpdater