AtomicLong和LongAdder的区别

Posted genggeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AtomicLong和LongAdder的区别相关的知识,希望对你有一定的参考价值。

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

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

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

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




以上是关于AtomicLong和LongAdder的区别的主要内容,如果未能解决你的问题,请参考以下文章

LongAdder和AtomicLong性能对比

Java多线程AtomicLong和LongAdder

LongAdder和AtomicLong哪个性能更好,为什么?

03_LongAdder 源码分析

有了LongAdder还需要AtomicLong吗?

Java并发编程之LongAdder和LongAccumulator源码探究