- AtomicLong 是基於 CAS 方式自旋更新的;LongAdder 是把 value 分成若干cell,並發量低的時候,直接 CAS 更新值,成功即結束。並發量高的情況,CAS更新某個cell值和需要時對cell數據擴容,成功結束;更新失敗自旋 CAS 更新 cell值。取值的時候,調用 sum() 方法進行每個cell累加。
- AtomicLong 包含有原子性的讀、寫結合的api;LongAdder 沒有原子性的讀、寫結合的api,能保證結果最終一致性。
- 低並發場景AtomicLong 和 LongAdder 性能相似,高並發場景 LongAdder 性能優於 AtomicLong。
- Java 自學指南
- Java 面試題匯總PC端瀏覽【點這里】
- Java知識圖譜
- Java 面試題匯總小程序瀏覽,掃二維碼
所有資源資源匯總於公眾號