LongAdder是jdk1.8提供的累加器,基于Striped64实现。它常用于状态采集、统计等场景。AtomicLong也可以用于这种场景,但在线程竞争激烈的情况下,LongAdder要比AtomicLong拥有更高的吞吐量,但会耗费更多的内存空间。
LongAccumulator和LongAdder类似,也基于Striped64实现。但要比LongAdder更加灵活(要传入一个函数式接口),LongAdder相当于是LongAccumulator的一种特例。
private static ExecutorService service; //从初始值0开始,做加/减处理,每次加/减1 private static LongAdder adder = new LongAdder(); //从初始值0开始,做累加处理 private static LongAccumulator accumulator1 = new LongAccumulator((x, y) -> x+y, 0); //从初始值1开始,做累积处理 private static LongAccumulator accumulator2 = new LongAccumulator((x, y) -> x*y, 1); public static void main(String[] args) { service = Executors.newCachedThreadPool(); for(int i=0; i<10; i++){ service.submit(() -> { adder.increment(); //加1 // adder.decrement(); //减1 System.out.println(adder.intValue()); accumulator1.accumulate(2); //每次加2 System.out.println(accumulator1.get()); //获取当前值 accumulator2.accumulate(2); //每次 * 2 System.out.println(accumulator2.get()); //获取当前值 }); } service.shutdown(); }
相关推荐
在多线程环境下,对于自增操作需要考虑线程安全问题,常见的解决方法包括使用synchronized关键字、AtomicInteger、LongAdder和LongAccumulator等。本文给出了使用这些方法实现自增的代码演示,并通过多线程测试比较...
Java 17是Java的最新版本,带来了许多令人兴奋的新特性。...总的来说,Java 17的新特性使得Java更加健壮、易于使用和高效。这些新特性将帮助开发人员更好地构建应用程序,并提高其性能和可维护性。
看了一下资源都没有java8新特性DoubleAccumulator的使用例子,所以分享一下这个的使用另外的其他3个类工具的使用类似DoubleAdder,LongAccumulator,LongAdder
主要介绍了Java并发工具类LongAdder原理实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
通过对代码的流程分析,一步一步拆解,将源码解读变得简单
第6章介绍了 Java 8中为并行计算做的新的改进, 包括并行流、 CompletableFuture、 StampedLock和LongAdder。第7章主要介绍了高并发框架Akka的基本使用方法,并使用Ak:ka框架实现了 个简单的粒子群算法, 模拟超高...
主要给大家介绍了关于JDK8中新增的原子性操作类LongAdder的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
java8 看不到源码对象分配跟踪器 目的和范围 此代理的目的是修复过多的对象分配问题。 虽然大多数分析器确实提供了分配跟踪,但当垃圾问题真...构建将使用LongAdder ,它在争用情况下具有更好的性能。 代理由PlatformMB
AtomicLong、LongAdder AtomicReference、AtomicReferenceFieldUpdater AtomicStampReference:CAS的ABA问题 原子性-synchronized 修饰代码块:大括号括起来的代码,作用于调用的对象 修饰方法:整个方法,作用于调用...
本文主要介绍Java 高并发JDK8的支持,这里整理了详细的资料及1. LongAdder 2. CompletableFuture 3. StampedLock的介绍,有兴趣的小伙伴可以参考下
LongAdder第三周(2019/12 / 23-2019 / 12.29)同步器Java内存模型,易失性,同步,AQS,ReentrantLock,Semaphore,分布式锁第四周(2019/12 / 30-2020 / 01/05)并发集合CopyOnWriteArrayList,ConcurrentHashMap...
jmh-样本 一些 JMH - Java Microbenchmark Harness Samples 包含一些 JMH 示例代码。 地图推杆 比较 ConcurrentHashMap 与同步映射 ...比较 AtomicLong 与 LongAdder 随机基准 比较 Random 与 ThreadLocalRandom
AtomicLong在高并发下性能甚至还不如加锁,LongAdder比AtomicLong更适用于高并发下的累加TODO后续研究其原理 强引用,软引用,弱引用,幽灵引用,引用数量 强引用:StrongReference 例如Date date = new Date();...