码迷,mamicode.com
首页 > 其他好文 > 详细

AtomicLong和LongAdder的区别

时间:2018-11-29 15:34:19      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:参考   并发   死循环   strong   article   str   性能   gad   误差   

AtomicLong的原理是依靠底层的cas来保障原子性的更新数据,在要添加或者减少的时候,会使用死循环不断地cas到特定的值,从而达到更新数据的目的。

LongAdder在AtomicLong的基础上将单点的更新压力分散到各个节点,在低并发的时候通过对base的直接更新可以很好的保障和AtomicLong的性能基本保持一致,而在高并发的时候通过分散提高了性能。
缺点是LongAdder在统计的时候如果有并发更新,可能导致统计的数据有误差。

不少框架里面使用到了LongAdder这个类,而并非AtomicLong

参考https://blog.csdn.net/yao123long/article/details/63683991

AtomicLong和LongAdder的区别

标签:参考   并发   死循环   strong   article   str   性能   gad   误差   

原文地址:https://www.cnblogs.com/genggeng/p/10037293.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!