public class LongAdder extends Number implements Serializable
long sum.  When updates (method add(long)) are contended
 across threads, the set of variables may grow dynamically to reduce
 contention. Method sum() (or, equivalently, longValue()) returns the current total combined across the
 variables maintaining the sum.
 This class is usually preferable to AtomicLong when
 multiple threads update a common sum that is used for purposes such
 as collecting statistics, not for fine-grained synchronization
 control.  Under low update contention, the two classes have similar
 characteristics. But under high contention, expected throughput of
 this class is significantly higher, at the expense of higher space
 consumption.
 
LongAdders can be used with a ConcurrentHashMap to maintain a scalable
 frequency map (a form of histogram or multiset). For example, to
 add a count to a ConcurrentHashMap<String,LongAdder> freqs,
 initializing if not already present, you can use freqs.computeIfAbsent(k -> new LongAdder()).increment();
 
This class extends Number, but does not define
 methods such as equals, hashCode and compareTo because instances are expected to be mutated, and so are
 not useful as collection keys.
| Constructor and Description | 
|---|
| LongAdder()Creates a new adder with initial sum of zero. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | add(long x)Adds the given value. | 
| void | decrement()Equivalent to  add(-1). | 
| double | doubleValue()Returns the  sum()as adoubleafter a widening
 primitive conversion. | 
| float | floatValue()Returns the  sum()as afloatafter a widening primitive conversion. | 
| void | increment()Equivalent to  add(1). | 
| int | intValue()Returns the  sum()as anintafter a narrowing
 primitive conversion. | 
| long | longValue()Equivalent to  sum(). | 
| void | reset()Resets variables maintaining the sum to zero. | 
| long | sum()Returns the current sum. | 
| long | sumThenReset() | 
| String | toString()Returns the String representation of the  sum(). | 
byteValue, shortValuepublic void add(long x)
x - the value to addpublic void increment()
add(1).public void decrement()
add(-1).public long sum()
public void reset()
public long sumThenReset()
sum() followed by reset(). This method may apply for example during quiescent
 points between multithreaded computations.  If there are
 updates concurrent with this method, the returned value is
 not guaranteed to be the final value occurring before
 the reset.public long longValue()
sum().public int intValue()
sum() as an int after a narrowing
 primitive conversion.public float floatValue()
sum() as a float
 after a widening primitive conversion.floatValue in class Numberfloat.public double doubleValue()
sum() as a double after a widening
 primitive conversion.doubleValue in class Numberdouble. 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, 2023, Oracle and/or its affiliates.  All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.