
DoubleAccumulator:一个或多个变量,它们一起保持运行double使用所提供的功能更新值DoubleAdder:一个或多个变量一起保持初始为零double总和LongAccumulator:一个或多个变量,一起保持使用提供的功能更新运行的值long ,提供了自定义的函数操作LongAdder:一个或多个变量一起维持初始为零long总和(重点),只能用来计算加法,且从0开始计算

原子类之LongAdder和LongAccumulator简介
package com.nanjing.gulimall.zhouyimo.test;
import java.util.concurrent.atomic.LongAccumulator;
import java.util.concurrent.atomic.LongAdder;
import java.util.function.LongBinaryOperator;
/**
* @author zhou
* @version 1.0
* @date 2024/1/21 10:13 下午
*/
public class LongAdderAPIDemo {
public static void main(String[] args) {
LongAdder longAdder = new LongAdder();
longAdder.increment();
longAdder.increment();
longAdder.increment();
System.out.println(longAdder.sum());//3
LongAccumulator longAccumulator = new LongAccumulator((x, y) -> x + y, 100);//初始值100
//和1累加
longAccumulator.accumulate(1);//101
longAccumulator.accumulate(3);//101+3=104
longAccumulator.accumulate(5);//104+5=109
System.out.println(longAccumulator.get());//109
//不用lambda表达式也可以,lambda的前身就是匿名内部类
LongAccumulator longAccumulator2 = new LongAccumulator(new LongBinaryOperator() {
@Override
public long applyAsLong(long left, long right) {
return 0;
}
},100);
}
}
Java原子类深入:LongAdder与LongAccumulator解析
本文介绍了Java原子类中的LongAdder和LongAccumulator,详细阐述了它们在并发环境下如何实现高效地更新数值,以及它们在计算中的应用场景和优势。
414

被折叠的 条评论
为什么被折叠?



