@IsDerivedFrom(value=java.util.concurrent.atomic.AtomicLong.class) public class ContendedLong extends Object
AtomicLong, except uses padding to reduce cache contention (aka false-sharing)
with writes to nearby memory locations.| Constructor and Description |
|---|
ContendedLong()
Creates a new
ContendedLong with initial value 0. |
ContendedLong(long initialValue)
Creates a new
ContendedLong with the given initial value. |
| Modifier and Type | Method and Description |
|---|---|
long |
accumulateAndGet(long x,
LongBinaryOperator accumulatorFunction)
Atomically updates the current value with the results of applying the given function to the
current and given values, returning the updated value.
|
long |
addAndGet(long delta)
Atomically adds the given value to the current value.
|
boolean |
compareAndSet(long expect,
long update)
Atomically sets the value to the given updated value if the current value
== the
expected value. |
long |
decrementAndGet()
Atomically decrements by one the current value.
|
long |
get()
Gets the current value.
|
long |
getAndAccumulate(long x,
LongBinaryOperator accumulatorFunction)
Atomically updates the current value with the results of applying the given function to the
current and given values, returning the previous value.
|
long |
getAndAdd(long delta)
Atomically adds the given value to the current value.
|
long |
getAndDecrement()
Atomically decrements by one the current value.
|
long |
getAndIncrement()
Atomically increments by one the current value.
|
long |
getAndSet(long newValue)
Atomically sets to the given value and returns the old value.
|
long |
getAndUpdate(LongUnaryOperator updateFunction)
Atomically updates the current value with the results of applying the given function,
returning the previous value.
|
long |
incrementAndGet()
Atomically increments by one the current value.
|
void |
lazySet(long newValue)
Eventually sets to the given value.
|
void |
set(long newValue)
Sets to the given value.
|
String |
toString()
Returns the String representation of the current value.
|
long |
updateAndGet(LongUnaryOperator updateFunction)
Atomically updates the current value with the results of applying the given function,
returning the updated value.
|
boolean |
weakCompareAndSet(long expect,
long update)
Atomically sets the value to the given updated value if the current value
== the
expected value. |
public ContendedLong(long initialValue)
ContendedLong with the given initial value.initialValue - the initial valuepublic ContendedLong()
ContendedLong with initial value 0.public final long get()
public final void set(long newValue)
newValue - the new valuepublic final void lazySet(long newValue)
newValue - the new valuepublic final long getAndSet(long newValue)
newValue - the new valuepublic final boolean compareAndSet(long expect,
long update)
== the
expected value.expect - the expected valueupdate - the new valuetrue if successful. False return indicates that the actual value was not equal
to the expected value.public final boolean weakCompareAndSet(long expect,
long update)
== the
expected value.expect - the expected valueupdate - the new valuetrue if successfulAtomicLong.weakCompareAndSet(long, long)public final long getAndIncrement()
public final long getAndDecrement()
public final long getAndAdd(long delta)
delta - the value to addpublic final long incrementAndGet()
public final long decrementAndGet()
public final long addAndGet(long delta)
delta - the value to addpublic final long getAndUpdate(LongUnaryOperator updateFunction)
updateFunction - a side-effect-free functionpublic final long updateAndGet(LongUnaryOperator updateFunction)
updateFunction - a side-effect-free functionpublic final long getAndAccumulate(long x,
LongBinaryOperator accumulatorFunction)
x - the update valueaccumulatorFunction - a side-effect-free function of two argumentspublic final long accumulateAndGet(long x,
LongBinaryOperator accumulatorFunction)
x - the update valueaccumulatorFunction - a side-effect-free function of two arguments