java.lang.Object
java.lang.Number
java.util.concurrent.atomic.DoubleAdder
- 所有已实现的接口:
Serializable
一个或多个变量一起保持最初为零的
double 总和。当更新(方法 add(double) )在线程之间发生争用时,变量集可能会动态增长以减少争用。方法 sum() (或等同于 doubleValue() )返回维护总和的变量的当前总和。不能保证线程内或跨线程的累积顺序。因此,如果需要数值稳定性,则此类可能不适用,尤其是在组合数量级大不相同的值时。
当多个线程更新一个公共值时,该类通常比备选方案更可取,该公共值用于诸如经常更新但读取频率较低的摘要统计信息之类的目的。
此类扩展了 Number ,但 not 定义了诸如 equals、hashCode 和 compareTo 之类的方法,因为实例预计会发生变异,因此不能用作集合键。
- 自从:
- 1.8
- 参见:
-
构造方法总结
构造方法 -
方法总结
在类 java.lang.Number 中声明的方法
byteValue, shortValue
-
构造方法详细信息
-
DoubleAdder
public DoubleAdder()创建一个初始和为零的新加法器。
-
-
方法详情
-
add
public void add(double x) 添加给定的值。- 参数:
x- 要添加的值
-
sum
public double sum()返回当前总和。返回值为NOT一个原子快照;在没有并发更新的情况下调用会返回准确的结果,但在计算总和时发生的并发更新可能不会被合并。此外,由于浮点运算不是严格关联的,因此返回的结果不必与在对单个变量的一系列顺序更新中获得的值相同。- 返回:
- 总和
-
reset
public void reset()重置保持总和为零的变量。此方法可能是创建新加法器的有用替代方法,但仅在没有并发更新时才有效。因为这种方法本质上是活泼的,所以只应在已知没有线程同时更新时使用它。 -
sumThenReset
public double sumThenReset()- 返回:
- 总和
-
toString
返回sum()的字符串表示形式。 -
doubleValue
public double doubleValue()相当于sum()。- 指定者:
doubleValue在类Number中- 返回:
- 总和
-
longValue
public long longValue()在缩小基元转换后将sum()作为long返回。 -
intValue
public int intValue()在缩小基元转换后将sum()作为int返回。 -
floatValue
public float floatValue()在缩小基元转换后将sum()作为float返回。- 指定者:
floatValue在类Number中- 返回:
-
转换为类型
float后此对象表示的数值。
-