DoubleAccumulator源码解析
DoubleAccumulator类介绍
DoubleAccumulator也是JDK提供的基于Striped64实现的线程安全的double累加器。
类图
主要属性
1 | private final DoubleBinaryOperator function; |
function:二元函数
identity:其实就是LongAdder中的base,它是将double类型的初始值转为long保存。
主要方法
DoubleAccumulator(DoubleBinaryOperator, double)
1 | /** |
初始化一个DoubleAccumulator对象,并将传入的double类型初始值转为long型存储。
accumulate(double)
1 | /** |
get()
1 | /** |
获取base和各个cell的值的累加和
reset()
1 | /** |
将base设置为初始值identity,并将各个cell的初始值也设置为identity
getThenReset()
1 | /** |
获取和然后重置
toString()
1 | /** |
返回当前和的String形式
doubleValue()
1 | /** |
返回当期值
longValue()
1 | /** |
将当前和转为long返回。注意精度丢失,是一个向下转型
intValue()
1 | /** |
将当前和转为int返回。注意精度丢失,是一个向下转型。
floatValue()
1 | /** |
将当前和转为float返回。注意精度丢失,是一个向下转型。