public class AtomicLongArray extends Objectimplements Serializable
long array in which elements may be updated atomically. See the
java.util.concurrent.atomic package specification for description of the properties of atomic variables.
| Constructor and Description |
|---|
AtomicLongArray(int length)
Creates a new AtomicLongArray of the given length, with all elements initially zero.
|
AtomicLongArray(long[] array)
Creates a new AtomicLongArray with the same length as, and all elements copied from, the given array.
|
| Modifier and Type | Method and Description |
|---|---|
long |
accumulateAndGet(int i, long x, LongBinaryOperator
Atomically updates the element at index
i with the results of applying the given function to the current and given values, returning the updated value.
|
long |
addAndGet(int i, long delta)
Atomically adds the given value to the element at index
i.
|
boolean |
compareAndSet(int i, long expect, long update)
Atomically sets the element at position
i to the given updated value if the current value
== the expected value.
|
long |
decrementAndGet(int i)
Atomically decrements by one the element at index
i.
|
long |
get(int i)
Gets the current value at position
i.
|
long |
getAndAccumulate(int i, long x, LongBinaryOperator
Atomically updates the element at index
i with the results of applying the given function to the current and given values, returning the previous value.
|
long |
getAndAdd(int i, long delta)
Atomically adds the given value to the element at index
i.
|
long |
getAndDecrement(int i)
Atomically decrements by one the element at index
i.
|
long |
getAndIncrement(int i)
Atomically increments by one the element at index
i.
|
long |
getAndSet(int i, long newValue)
Atomically sets the element at position
i to the given value and returns the old value.
|
long |
getAndUpdate(int i, LongUnaryOperator
Atomically updates the element at index
i with the results of applying the given function, returning the previous value.
|
long |
incrementAndGet(int i)
Atomically increments by one the element at index
i.
|
void |
lazySet(int i, long newValue)
Eventually sets the element at position
i to the given value.
|
int |
length()
Returns the length of the array.
|
void |
set(int i, long newValue)
Sets the element at position
i to the given value.
|
String |
toString()
Returns the String representation of the current values of array.
|
long |
updateAndGet(int i, LongUnaryOperator
Atomically updates the element at index
i with the results of applying the given function, returning the updated value.
|
boolean |
weakCompareAndSet(int i, long expect, long update)
Atomically sets the element at position
i to the given updated value if the current value
== the expected value.
|
public AtomicLongArray(int length)
length - the length of the array
public AtomicLongArray(long[] array)
array - the array to copy elements from
NullPointerException - if array is null
public final int length()
public final long get(int i)
i.
i - the index
public final void set(int i,
long newValue)
i to the given value.
i - the index
newValue - the new value
public final void lazySet(int i,
long newValue)
i to the given value.
i - the index
newValue - the new value
public final long getAndSet(int i,
long newValue)
i to the given value and returns the old value.
i - the index
newValue - the new value
public final boolean compareAndSet(int i,
long expect,
long update)
i to the given updated value if the current value
== the expected value.
i - the index
expect - the expected value
update - the new value
true if successful. False return indicates that the actual value was not equal to the expected value.
public final boolean weakCompareAndSet(int i,
long expect,
long update)
i to the given updated value if the current value
== the expected value.
May fail spuriously and does not provide ordering guarantees, so is only rarely an appropriate alternative to compareAndSet.
i - the index
expect - the expected value
update - the new value
true if successful
public final long getAndIncrement(int i)
i.
i - the index
public final long getAndDecrement(int i)
i.
i - the index
public final long getAndAdd(int i,
long delta)
i.
i - the index
delta - the value to add
public final long incrementAndGet(int i)
i.
i - the index
public final long decrementAndGet(int i)
i.
i - the index
public long addAndGet(int i,
long delta)
i.
i - the index
delta - the value to add
public final long getAndUpdate(int i,
LongUnaryOperator updateFunction)
i with the results of applying the given function, returning the previous value. The function should be side-effect-free, since it may be re-applied when attempted updates fail due to contention among threads.
i - the index
updateFunction - a side-effect-free function
public final long updateAndGet(int i,
LongUnaryOperator updateFunction)
i with the results of applying the given function, returning the updated value. The function should be side-effect-free, since it may be re-applied when attempted updates fail due to contention among threads.
i - the index
updateFunction - a side-effect-free function
public final long getAndAccumulate(int i,
long x,
LongBinaryOperator accumulatorFunction)
i with the results of applying the given function to the current and given values, returning the previous value. The function should be side-effect-free, since it may be re-applied when attempted updates fail due to contention among threads. The function is applied with the current value at index
i as its first argument, and the given update as the second argument.
i - the index
x - the update value
accumulatorFunction - a side-effect-free function of two arguments
public final long accumulateAndGet(int i,
long x,
LongBinaryOperator accumulatorFunction)
i with the results of applying the given function to the current and given values, returning the updated value. The function should be side-effect-free, since it may be re-applied when attempted updates fail due to contention among threads. The function is applied with the current value at index
i as its first argument, and the given update as the second argument.
i - the index
x - the update value
accumulatorFunction - a side-effect-free function of two arguments