您的位置 首页 java

2020-10-18:java中LongAdder和A…

2020-10-18: java 中LongAdder和AtomicLong有什么区别?

福哥答案2020-10-18:#福大大架构师每日一题#

简单回答:AtomicLong是CAS操作。LongAdder是多个单元操作。

中级回答:

AtomicLong 是基于 CAS 方式自旋更新的;LongAdder 是把 value 分成若干cell,并发量低的时候,直接 CAS 更新值,成功即结束。并发量高的情况,CAS更新某个cell值和需要时对cell数据扩容,成功结束;更新失败自旋 CAS 更新 cell值。取值的时候,调用 sum () 方法进行每个cell累加。

AtomicLong 包含有原子性的读、写结合的 api ;LongAdder 没有原子性的读、写结合的api,能保证结果最终一致性。

低并发场景AtomicLong 和 LongAdder 性能相似,高并发场景 LongAdder 性能优于 AtomicLong。

针对自增问题, synchronized 、AtomicLong、LongAdder性能比较。这个可能会被面试到。

***

[评论](

文章来源:智云一二三科技

文章标题:2020-10-18:java中LongAdder和A…

文章地址:https://www.zhihuclub.com/183731.shtml

关于作者: 智云科技

热门文章

网站地图