Most visited

Recently visited

Added in API level 24

LongAdder

public class LongAdder
extends Number implements Serializable

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


一个或多个变量,它们共同维持最初的零long总和。 当更新(方法add(long) )在线程间竞争时,该组变量可能会动态增长以减少争用。 方法sum() (或者等价地, longValue() )返回当前在维持总和的变量上组合的总数。

当多线程更新用于诸如收集统计数据之类的目的的共同和时,通常优选AtomicLong ,而不是用于细粒度同步控制。 在低更新争用下,这两个类别具有相似的特征。 但是,在高度争论中,该类别的预期吞吐量显着较高,但以较高的空间消耗为代价。

LongAdders可与ConcurrentHashMap一起使用,以维护可伸缩的频率映射(一种直方图或多重集)。 例如,要将计数添加到ConcurrentHashMap<String,LongAdder> freqs ,初始化(如果尚未存在),可以使用freqs.computeIfAbsent(key, k -> new LongAdder()).increment();

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

Summary

Public constructors

LongAdder()

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

Public methods

void add(long x)

添加给定的值。

void decrement()

相当于 add(-1)

double doubleValue()

在扩展原始转换之后,将 sum()作为 double返回。

float floatValue()

在扩大原始转换之后,将 sum()作为 float返回。

void increment()

相当于 add(1)

int intValue()

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

long longValue()

相当于 sum()

void reset()

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

long sum()

返回当前总和。

long sumThenReset()

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

String toString()

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

Inherited methods

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

Public constructors

LongAdder

Added in API level 24
LongAdder ()

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

Public methods

add

Added in API level 24
void add (long x)

添加给定的值。

Parameters
x long: the value to add

decrement

Added in API level 24
void decrement ()

相当于 add(-1)

doubleValue

Added in API level 24
double doubleValue ()

在扩展原始转换之后,将 sum()作为 double返回。

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

floatValue

Added in API level 24
float floatValue ()

在扩展原始转换之后,将 sum()作为 float返回。

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

increment

Added in API level 24
void increment ()

相当于 add(1)

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()

Returns
long the sum

reset

Added in API level 24
void reset ()

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

sum

Added in API level 24
long sum ()

返回当前总和。 返回的值不是原子快照; 在没有并发更新的情况下调用会返回准确的结果,但是在计算总和时发生的并发更新可能不会被合并。

Returns
long the sum

sumThenReset

Added in API level 24
long sumThenReset ()

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

Returns
long the sum

toString

Added in API level 24
String toString ()

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

Returns
String the String representation of the sum()

Hooray!