public class AtomicLongArray extends Object implements 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 | 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 | Description |
---|---|---|
long |
accumulateAndGet(int i,
long x,
LongBinaryOperator accumulatorFunction) |
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 accumulatorFunction) |
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 updateFunction) |
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 updateFunction) |
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 arraypublic AtomicLongArray(long[] array)
array
- the array to copy elements fromNullPointerException
- if array is nullpublic final int length()
public final long get(int i)
i
.i
- the indexpublic final void set(int i, long newValue)
i
to the given value.i
- the indexnewValue
- the new valuepublic final void lazySet(int i, long newValue)
i
to the given value.i
- the indexnewValue
- the new valuepublic final long getAndSet(int i, long newValue)
i
to the given value
and returns the old value.i
- the indexnewValue
- the new valuepublic final boolean compareAndSet(int i, long expect, long update)
i
to the given
updated value if the current value ==
the expected value.i
- the indexexpect
- 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(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 indexexpect
- the expected valueupdate
- the new valuetrue
if successfulpublic final long getAndIncrement(int i)
i
.i
- the indexpublic final long getAndDecrement(int i)
i
.i
- the indexpublic final long getAndAdd(int i, long delta)
i
.i
- the indexdelta
- the value to addpublic final long incrementAndGet(int i)
i
.i
- the indexpublic final long decrementAndGet(int i)
i
.i
- the indexpublic long addAndGet(int i, long delta)
i
.i
- the indexdelta
- the value to addpublic 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 indexupdateFunction
- a side-effect-free functionpublic 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 indexupdateFunction
- a side-effect-free functionpublic 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 indexx
- the update valueaccumulatorFunction
- a side-effect-free function of two argumentspublic 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 indexx
- the update valueaccumulatorFunction
- a side-effect-free function of two arguments 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, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.