AtomicXXX既出,LongAdder岂非多余?

2026-05-28 02:410阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2559个文字,预计阅读时间需要11分钟。

AtomicXXX既出,LongAdder岂非多余?

AtomicXXX,为何有LongAdder?

LongAdder是JDK1.8在java.util.concurrent.atomic包下新引入的,为高并发下实现高性能系统计数器类。它并非AtomicInteger和AtomicLong的替代品,而是提供了更高的性能。

LongAdder通过分段锁的设计,使得多个线程可以同时更新不同的段,从而降低了锁的竞争。这使得它在高并发场景下,相比AtomicInteger和AtomicLong,能提供更高的性能。

既生AtomicXXX,何生LongAdder?

LongAdder是JDK1.8在​​java.util.concurrent.atomic​​包下新引入的 为了高并发下实现高性能统计的类。

AtomicXXX既出,LongAdder岂非多余?

不是有​​AtomicInteger​​ 和 ​​AtomicLong​​嘛,咋还蹦出来个​​LongAdder​​???

首先,我们要知道的是,无论是​​AtomicInteger​​还是​​AtomicLong​​,本质上都是利用CAS的思想,来保证的变量的原子性,虽然说比较好用,但是在高并发环境下,多个线程争夺同一个资源时,如果自旋一直不成功,会一直循环,一直占用CPU,这会极大的浪费CPU资源。

阅读全文

本文共计2559个文字,预计阅读时间需要11分钟。

AtomicXXX既出,LongAdder岂非多余?

AtomicXXX,为何有LongAdder?

LongAdder是JDK1.8在java.util.concurrent.atomic包下新引入的,为高并发下实现高性能系统计数器类。它并非AtomicInteger和AtomicLong的替代品,而是提供了更高的性能。

LongAdder通过分段锁的设计,使得多个线程可以同时更新不同的段,从而降低了锁的竞争。这使得它在高并发场景下,相比AtomicInteger和AtomicLong,能提供更高的性能。

既生AtomicXXX,何生LongAdder?

LongAdder是JDK1.8在​​java.util.concurrent.atomic​​包下新引入的 为了高并发下实现高性能统计的类。

AtomicXXX既出,LongAdder岂非多余?

不是有​​AtomicInteger​​ 和 ​​AtomicLong​​嘛,咋还蹦出来个​​LongAdder​​???

首先,我们要知道的是,无论是​​AtomicInteger​​还是​​AtomicLong​​,本质上都是利用CAS的思想,来保证的变量的原子性,虽然说比较好用,但是在高并发环境下,多个线程争夺同一个资源时,如果自旋一直不成功,会一直循环,一直占用CPU,这会极大的浪费CPU资源。

阅读全文