ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### 处理器如何保证原子操作 * 使用总线锁保证原子性 * 使用缓存锁保证原子性 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指令实现的;