atomic包下面 atomic:原子性 指的是一个操作不能被打断 是一个整体
1.atomic基本类型,比如atomicInteger atomiclong。
2.atomic*Array 比如atomicIntegerArray里面所有的元素都是原子类的
3.atomicReference 原子引用 可以提供CAS方法
使用场景参考:并发编程 — 原子类 AtomicReference 详解_small_love的专栏-优快云博客通过对 AtomicInteger、AtomicBoolean 和 AtomicLong 分析我们发现,这三个原子类只能对单个变量进行原子操作,那么我们如果要对多个变量进行原子操作,这三个类就无法实现了。那如果要进行多个变量进行原子操作呢?操作方式就是,先把 多个变量封装成一个类,然后通过 AtomicReference 进行操作。众所周知,对象的引用其实是一个4字节的数字,代表着在JVM堆内存中的引用地址,对一个4字节数字的读取操作和写入操作本身就是原子性的,通常情况下,我们对对象引用的操作一般都是获https://blog.youkuaiyun.com/small_love/article/details/111058977
6.atomic**filedUpdater :可以将普通变量变成原子变量
4.Adder 累加器 效率比atomic高,因为他有一个cell数组,在每个线程内单独相加,最后是汇总,而atomic每次计算完以后都要重新fresh到主内存中,同时让其他线程的变量也refresh一次。Adder一般只能做加法
5.Accumulator 累加器 可以做多种运算,同时是线程安全的