Most visited

Recently visited

Added in API level 24

DoubleAdder

public class DoubleAdder
extends Number implements Serializable

java.lang.Object
   ↳ java.lang.Number
     ↳ java.util.concurrent.atomic.DoubleAdder


一个或多个变量,它们共同维持最初的零double总和。 当更新(方法add(double) )在线程间竞争时,该组变量可能会动态增长以减少争用。 方法sum() (或等价地, doubleValue() )返回当前合计在维持总和的变量上的总和。 不保证线程内部或跨线程的累积顺序。 因此,如果要求数值稳定性,特别是在组合大大不同数量级的数值时,此类可能不适用。

当多个线程更新用于诸如频繁更新但较少阅读的摘要统计等用途的公共值时,此类通常比替代方案更可取。

该类扩展 Number ,但 定义诸如方法 equalshashCodecompareTo ,因为实例预计将发生突变,所以不如收集钥匙有用。

Summary

Public constructors

DoubleAdder()

创建一个初始和为零的新加法器。

Public methods

void add(double x)

添加给定的值。

double doubleValue()

相当于 sum()

float floatValue()

在缩小原始转换后,将 sum()作为 float返回。

int intValue()

在缩小原始转换之后,将 sum()作为 int返回。

long longValue()

缩小原始转换后,将 sum()作为 long返回。

void reset()

重置将总和保持为零的变量。

double sum()

返回当前总和。

double sumThenReset()

等同于 sum()然后是 reset()

String toString()

返回 sum()的字符串表示 sum()

Inherited methods

From class java.lang.Number
From class java.lang.Object

Public constructors

DoubleAdder

Added in API level 24
DoubleAdder ()

创建一个初始和为零的新加法器。

Public methods

add

Added in API level 24
void add (double x)

添加给定的值。

Parameters
x double: the value to add

doubleValue

Added in API level 24
double doubleValue ()

相当于 sum()

Returns
double the sum

floatValue

Added in API level 24
float floatValue ()

缩小原始转换后,将 sum()作为 float返回。

Returns
float the numeric value represented by this object after conversion to type float.

intValue

Added in API level 24
int intValue ()

在缩小原始转换之后,将 sum()作为 int返回。

Returns
int the numeric value represented by this object after conversion to type int.

longValue

Added in API level 24
long longValue ()

在缩小原始转换之后,将 sum()作为 long返回。

Returns
long the numeric value represented by this object after conversion to type long.

reset

Added in API level 24
void reset ()

重置将总和保持为零的变量。 此方法可能是创建新加法器的有用替代方法,但只有在没有并发更新时才有效。 由于此方法本质上是活泼的,因此只有在知道没有线程正在同时更新时才应使用它。

sum

Added in API level 24
double sum ()

返回当前总和。 返回的值不是原子快照; 在没有并发更新的情况下调用会返回准确的结果,但是在计算总和时发生的并发更新可能不会被合并。 另外,因为浮点运算不是严格相关的,所以返回的结果不需要与对单个变量的连续更新中获得的值相同。

Returns
double the sum

sumThenReset

Added in API level 24
double sumThenReset ()

等同于sum()然后是reset() 这种方法可能适用于多线程计算之间的静态点。 如果有与此方法同时发生的更新,则返回的值不能保证是重置前发生的最终值。

Returns
double the sum

toString

Added in API level 24
String toString ()

返回 sum()的字符串表示 sum()

Returns
String the String representation of the sum()

Hooray!