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 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 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, 2018, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.