public class AtomicIntegerArray extends Object implements Serializable
int
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 |
---|
AtomicIntegerArray(int length)
Creates a new AtomicIntegerArray of the given length, with all
elements initially zero.
|
AtomicIntegerArray(int[] array)
Creates a new AtomicIntegerArray with the same length as, and
all elements copied from, the given array.
|
Modifier and Type | Method and Description |
---|---|
int |
accumulateAndGet(int i,
int x,
IntBinaryOperator 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. |
int |
addAndGet(int i,
int delta)
Atomically adds the given value to the element at index
i . |
boolean |
compareAndSet(int i,
int expect,
int update)
Atomically sets the element at position
i to the given
updated value if the current value == the expected value. |
int |
decrementAndGet(int i)
Atomically decrements by one the element at index
i . |
int |
get(int i)
Gets the current value at position
i . |
int |
getAndAccumulate(int i,
int x,
IntBinaryOperator 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. |
int |
getAndAdd(int i,
int delta)
Atomically adds the given value to the element at index
i . |
int |
getAndDecrement(int i)
Atomically decrements by one the element at index
i . |
int |
getAndIncrement(int i)
Atomically increments by one the element at index
i . |
int |
getAndSet(int i,
int newValue)
Atomically sets the element at position
i to the given
value and returns the old value. |
int |
getAndUpdate(int i,
IntUnaryOperator updateFunction)
Atomically updates the element at index
i with the results
of applying the given function, returning the previous value. |
int |
incrementAndGet(int i)
Atomically increments by one the element at index
i . |
void |
lazySet(int i,
int newValue)
Eventually sets the element at position
i to the given value. |
int |
length()
Returns the length of the array.
|
void |
set(int i,
int newValue)
Sets the element at position
i to the given value. |
String |
toString()
Returns the String representation of the current values of array.
|
int |
updateAndGet(int i,
IntUnaryOperator updateFunction)
Atomically updates the element at index
i with the results
of applying the given function, returning the updated value. |
boolean |
weakCompareAndSet(int i,
int expect,
int update)
Atomically sets the element at position
i to the given
updated value if the current value == the expected value. |
public AtomicIntegerArray(int length)
length
- the length of the arraypublic AtomicIntegerArray(int[] array)
array
- the array to copy elements fromNullPointerException
- if array is nullpublic final int length()
public final int get(int i)
i
.i
- the indexpublic final void set(int i, int newValue)
i
to the given value.i
- the indexnewValue
- the new valuepublic final void lazySet(int i, int newValue)
i
to the given value.i
- the indexnewValue
- the new valuepublic final int getAndSet(int i, int newValue)
i
to the given
value and returns the old value.i
- the indexnewValue
- the new valuepublic final boolean compareAndSet(int i, int expect, int 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, int expect, int 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 int getAndIncrement(int i)
i
.i
- the indexpublic final int getAndDecrement(int i)
i
.i
- the indexpublic final int getAndAdd(int i, int delta)
i
.i
- the indexdelta
- the value to addpublic final int incrementAndGet(int i)
i
.i
- the indexpublic final int decrementAndGet(int i)
i
.i
- the indexpublic final int addAndGet(int i, int delta)
i
.i
- the indexdelta
- the value to addpublic final int getAndUpdate(int i, IntUnaryOperator 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 int updateAndGet(int i, IntUnaryOperator 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 int getAndAccumulate(int i, int x, IntBinaryOperator 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 int accumulateAndGet(int i, int x, IntBinaryOperator 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, 2023, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.