LongAccumulator 介绍
public class LongAccumulator extends Striped64 implements Serializable
private final LongBinaryOperator function;
private final long identity;
/**
* Creates a new instance using the given accumulator function
* and identity element.
* @param accumulatorFunction a side-effect-free function of two arguments
* @param identity identity (initial value) for the accumulator function
*/
public LongAccumulator(LongBinaryOperator accumulatorFunction,
long identity) {
this.function = accumulatorFunction;
base = this.identity = identity;
}
LongAccumulator 是 LongAdder 的泛化版。因为它可以支持自定义:
- accumulatorFunction:累加规则,不一定是相加,可以是其他运算。
- base:初始值,不一定为 0,可以是其他。
使用例子
public static void main(String[] args) {
LongAccumulator longAccumulator = new LongAccumulator(new LongBinaryOperator() {
@Override
public long applyAsLong(long left, long right) {
return left * right;
}
},2);
long initVal = longAccumulator.get();
System.out.println(initVal);
longAccumulator.accumulate(3);
long res1 = longAccumulator.get();
System.out.println(res1);
}
2
6
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: LockSupport 挂起和唤醒线程
下一篇: 谈谈自己对于 AOP 的了解
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论