An array of object references in which elements may be updated
atomically. See the java.util.concurrent.atomic
package
specification for description of the properties of atomic
variables.
Public Constructor Summary
AtomicReferenceArray(int length)
Creates a new AtomicReferenceArray of the given length, with all
elements initially null.
|
|
AtomicReferenceArray(E[] array)
Creates a new AtomicReferenceArray with the same length as, and
all elements copied from, the given array.
|
Public Method Summary
final E |
accumulateAndGet(int i, E x, BinaryOperator<E> 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. |
final boolean |
compareAndSet(int i, E expect, E update)
Atomically sets the element at position
i to the given
updated value if the current value == the expected value. |
final E |
get(int i)
Gets the current value at position
i . |
final E |
getAndAccumulate(int i, E x, BinaryOperator<E> 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. |
final E |
getAndSet(int i, E newValue)
Atomically sets the element at position
i to the given
value and returns the old value. |
final E |
getAndUpdate(int i, UnaryOperator<E> updateFunction)
Atomically updates the element at index
i with the results
of applying the given function, returning the previous value. |
final void |
lazySet(int i, E newValue)
Eventually sets the element at position
i to the given value. |
final int |
length()
Returns the length of the array.
|
final void |
set(int i, E newValue)
Sets the element at position
i to the given value. |
String |
toString()
Returns the String representation of the current values of array.
|
final E |
updateAndGet(int i, UnaryOperator<E> updateFunction)
Atomically updates the element at index
i with the results
of applying the given function, returning the updated value. |
final boolean |
weakCompareAndSet(int i, E expect, E update)
Atomically sets the element at position
i to the given
updated value if the current value == the expected value. |
Inherited Method Summary
Public Constructors
public AtomicReferenceArray (int length)
Creates a new AtomicReferenceArray of the given length, with all elements initially null.
Parameters
length | the length of the array |
---|
public AtomicReferenceArray (E[] array)
Creates a new AtomicReferenceArray with the same length as, and all elements copied from, the given array.
Parameters
array | the array to copy elements from |
---|
Throws
NullPointerException | if array is null |
---|
Public Methods
public final E accumulateAndGet (int i, E x, BinaryOperator<E> 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. 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.
Parameters
i | the index |
---|---|
x | the update value |
accumulatorFunction | a side-effect-free function of two arguments |
Returns
- the updated value
public final boolean compareAndSet (int i, E expect, E update)
Atomically sets the element at position i
to the given
updated value if the current value ==
the expected value.
Parameters
i | the index |
---|---|
expect | the expected value |
update | the new value |
Returns
true
if successful. False return indicates that the actual value was not equal to the expected value.
public final E get (int i)
Gets the current value at position i
.
Parameters
i | the index |
---|
Returns
- the current value
public final E getAndAccumulate (int i, E x, BinaryOperator<E> 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. 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.
Parameters
i | the index |
---|---|
x | the update value |
accumulatorFunction | a side-effect-free function of two arguments |
Returns
- the previous value
public final E getAndSet (int i, E newValue)
Atomically sets the element at position i
to the given
value and returns the old value.
Parameters
i | the index |
---|---|
newValue | the new value |
Returns
- the previous value
public final E getAndUpdate (int i, UnaryOperator<E> updateFunction)
Atomically updates the element at index 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.
Parameters
i | the index |
---|---|
updateFunction | a side-effect-free function |
Returns
- the previous value
public final void lazySet (int i, E newValue)
Eventually sets the element at position i
to the given value.
Parameters
i | the index |
---|---|
newValue | the new value |
public final int length ()
Returns the length of the array.
Returns
- the length of the array
public final void set (int i, E newValue)
Sets the element at position i
to the given value.
Parameters
i | the index |
---|---|
newValue | the new value |
public String toString ()
Returns the String representation of the current values of array.
Returns
- the String representation of the current values of array
public final E updateAndGet (int i, UnaryOperator<E> updateFunction)
Atomically updates the element at index 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.
Parameters
i | the index |
---|---|
updateFunction | a side-effect-free function |
Returns
- the updated value
public final boolean weakCompareAndSet (int i, E expect, E update)
Atomically sets the element at position 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
.
Parameters
i | the index |
---|---|
expect | the expected value |
update | the new value |
Returns
true
if successful