🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 处理器如何保证原子操作 * 使用总线锁保证原子性 * 使用缓存锁保证原子性 java.util.concurrent.atomic包提供了多个对数字类型进行操作的类 * AtomicInteger * AtomicIntegerArray * AtomicIntegerFieldUpdater * AtomicBoolean * AtomicLong * AtomicLongArray * AtomicLongFieldUpdater * AtomicReference * AtomicReferenceArray * AtomicReferenceFieldUpdater * LongAdder * LongAccumulator * DoubleAdder * DoubleAccumulator ### 主要API * getAndUpdate——以原子方式用给定的方法更新当前值,并返回变更之前的值; * updateAndGet——以原子方式用给定的方法更新当前值,并返回变更之后的值; * getAndAccumulate——以原子方式用给定的方法对当前及给定的值进行更新,并返回变更之前的值; * accumulateAndGet——以原子方式用给定的方法对当前及给定的值进行更新,并返回变更之后的值; 【知识点】 * JDK8推荐使用LongAdder对象,比AtomicLong性能更好; * JVM中的CAS操作正是利用了处理器提供的CMPXCHG指令实现的;