LongAdder與AtomicLong有什么區別?


  • AtomicLong 是基於 CAS 方式自旋更新的;LongAdder 是把 value 分成若干cell,並發量低的時候,直接 CAS 更新值,成功即結束。並發量高的情況,CAS更新某個cell值和需要時對cell數據擴容,成功結束;更新失敗自旋 CAS 更新 cell值。取值的時候,調用 sum() 方法進行每個cell累加。
  • AtomicLong 包含有原子性的讀、寫結合的api;LongAdder 沒有原子性的讀、寫結合的api,能保證結果最終一致性。
  • 低並發場景AtomicLong 和 LongAdder 性能相似,高並發場景 LongAdder 性能優於 AtomicLong。


原文鏈接
 


 

所有資源資源匯總於公眾號



 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM