public class LongAdder extends Number implements Serializable
long
总和。当更新(方法
add(long)
)主张跨线程、变量的设置可以动态增长以减少争用。方法
sum()
(或者,等价地,
longValue()
)返回当前的总变量之间保持的总和。
这类通常是最好的AtomicLong
当多个线程共同更新和用于用途,如收集统计,不为细粒度的同步控制。在低更新争用下,两个类具有相似的特征。但在高争用,预计这一类的吞吐量显着更高,在更高的空间消耗的费用。
longadders可与ConcurrentHashMap
保持可伸缩频率图(一种直方图或multiset)。例如,添加一个算一ConcurrentHashMap<String,LongAdder> freqs
,初始化不存在的话,你可以使用freqs.computeIfAbsent(k -> new LongAdder()).increment();
这类Number
延伸,但不定义方法如equals
,hashCode
和compareTo
因为情况预计将发生突变,而不是用作收集钥匙。
Constructor and Description |
---|
LongAdder()
创建一个新的加法器,初始和为零。
|
Modifier and Type | Method and Description |
---|---|
void |
add(long x)
添加给定值。
|
void |
decrement()
相当于
add(-1) 。
|
double |
doubleValue()
为扩大基本转换后的
double 返回
sum() 。
|
float |
floatValue()
为扩大基本转换后的
float 返回
sum() 。
|
void |
increment()
相当于
add(1) 。
|
int |
intValue()
作为一个窄化转换后,
int 返回
sum() 。
|
long |
longValue()
相当于
sum() 。
|
void |
reset()
重置变量保持总和为零。
|
long |
sum()
返回当前的和。
|
long |
sumThenReset()
|
String |
toString()
返回的字符串表示形式的
sum() 。
|
byteValue, shortValue
public void add(long x)
x
-价值增加
public void increment()
add(1)
。
public void decrement()
add(-1)
。
public long sum()
public void reset()
public long sumThenReset()
public int intValue()
int
返回
sum()
。
public float floatValue()
float
返回
sum()
。
floatValue
方法重写,继承类
Number
float
后。
public double doubleValue()
double
返回
sum()
。
doubleValue
方法重写,继承类
Number
double
后。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.