1 Atomic原子操作
在 Java 5.0 提供了 java.util.concurrent(简称JUC)包,在此包中增加了在并发编程中很常用的工具类
Java从JDK1.5开始提供了java.util.concurrent.atomic包,方便程序员在多线程环境下,无锁的进行原子操作。原子变量的底层使用了处理器提供的原子指令,但是不同的CPU架构可能提供的原子指令不一样,也有可能需要某种形式的内部锁,所以该方法不能绝对保证线程不被阻塞。
在Atomic包里一共有12个类,四种原子更新方式,分别是原子更新基本类型,原子更新数组,原子更新引用和原子更新字段。Atomic包里的类基本都是使用Unsafe实现的包装类。
- 原子更新基本类型类: AtomicBoolean,AtomicInteger,AtomicLong,AtomicReference
- 原子更新数组类:AtomicIntegerArray,AtomicLongArray
- 原子更新引用类型:AtomicMarkableReference,AtomicStampedReference,AtomicReferenceArray
- 原子更新字段类:AtomicLongFieldUpdater,AtomicIntegerFieldUpdater,AtomicReference