根据修的数据类型,可以将JUC包中的原子类可以分为一下4类(17个类)
- 基本类型: AtomicBoolean, AtomicInteger, AtomicLong, LongAddr, DoubleAddr,Striped64,LongAccumulator, DoubleAccumulator;
- 数组类型: AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray ;
- 引用类型: AtomicReference, AtomicStampedRerence, AtomicMarkableReference ;
- 对象的属性修改类型: AtomicIntegerFieldUpdater, AtomicLongFieldUpdater, AtomicReferenceFieldUpdater;
这些类存在的目的是对相应的类型数据进行修改保证原子性。所谓的原子性,在这些类使用的语义背景下,在多线程环境中,是线程相对安全的。线程是没有绝对的安全的,只有在良好的设计,良好的编码情况下,扛得高并发 高性能 高可能 业务的,就叫线程安全。
绝对的线程安全,那一定是要绝对的并行可串行化,并行的结果和影响和串行的结果和影响完全一致,这可不好控制哦。