AtomicReference
open class AtomicReference<V : Any!> : Serializable
| kotlin.Any | |
| ↳ | java.util.concurrent.atomic.AtomicReference |
An object reference that may be updated atomically. See the package specification for description of the properties of atomic variables.
Summary
| Public constructors | |
|---|---|
AtomicReference(initialValue: V)Creates a new AtomicReference with the given initial value. |
|
|
Creates a new AtomicReference with null initial value. |
|
| Public methods | |
|---|---|
| V |
accumulateAndGet(x: V, accumulatorFunction: BinaryOperator<V>!)Atomically updates the current value with the results of applying the given function to the current and given values, returning the updated value. |
| Boolean |
compareAndSet(expect: V, update: V)Atomically sets the value to the given updated value if the current value |
| V |
get()Gets the current value. |
| V |
getAndAccumulate(x: V, accumulatorFunction: BinaryOperator<V>!)Atomically updates the current value with the results of applying the given function to the current and given values, returning the previous value. |
| V |
getAndSet(newValue: V)Atomically sets to the given value and returns the old value. |
| V |
getAndUpdate(updateFunction: UnaryOperator<V>!)Atomically updates the current value with the results of applying the given function, returning the previous value. |
| Unit |
lazySet(newValue: V)Eventually sets to the given value. |
| Unit |
set(newValue: V)Sets to the given value. |
| open String |
toString()Returns the String representation of the current value. |
| V |
updateAndGet(updateFunction: UnaryOperator<V>!)Atomically updates the current value with the results of applying the given function, returning the updated value. |
| Boolean |
weakCompareAndSet(expect: V, update: V)Atomically sets the value to the given updated value if the current value |
Public constructors
AtomicReference
AtomicReference(initialValue: V)
Creates a new AtomicReference with the given initial value.
| Parameters | |
|---|---|
initialValue |
V: the initial value |
AtomicReference
AtomicReference()
Creates a new AtomicReference with null initial value.
Public methods
accumulateAndGet
fun accumulateAndGet(
x: V,
accumulatorFunction: BinaryOperator<V>!
): V
Atomically updates the current value 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 as its first argument, and the given update as the second argument.
| Parameters | |
|---|---|
x |
V: the update value |
accumulatorFunction |
BinaryOperator<V>!: a side-effect-free function of two arguments |
| Return | |
|---|---|
V |
the updated value |
compareAndSet
fun compareAndSet(
expect: V,
update: V
): Boolean
Atomically sets the value to the given updated value if the current value == the expected value.
| Parameters | |
|---|---|
expect |
V: the expected value |
update |
V: the new value |
| Return | |
|---|---|
Boolean |
true if successful. False return indicates that the actual value was not equal to the expected value. |
getAndAccumulate
fun getAndAccumulate(
x: V,
accumulatorFunction: BinaryOperator<V>!
): V
Atomically updates the current value 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 as its first argument, and the given update as the second argument.
| Parameters | |
|---|---|
x |
V: the update value |
accumulatorFunction |
BinaryOperator<V>!: a side-effect-free function of two arguments |
| Return | |
|---|---|
V |
the previous value |
getAndSet
fun getAndSet(newValue: V): V
Atomically sets to the given value and returns the old value.
| Parameters | |
|---|---|
newValue |
V: the new value |
| Return | |
|---|---|
V |
the previous value |
getAndUpdate
fun getAndUpdate(updateFunction: UnaryOperator<V>!): V
Atomically updates the current value 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 | |
|---|---|
updateFunction |
UnaryOperator<V>!: a side-effect-free function |
| Return | |
|---|---|
V |
the previous value |
lazySet
fun lazySet(newValue: V): Unit
Eventually sets to the given value.
| Parameters | |
|---|---|
newValue |
V: the new value |
set
fun set(newValue: V): Unit
Sets to the given value.
| Parameters | |
|---|---|
newValue |
V: the new value |
toString
open fun toString(): String
Returns the String representation of the current value.
| Return | |
|---|---|
String |
the String representation of the current value |
updateAndGet
fun updateAndGet(updateFunction: UnaryOperator<V>!): V
Atomically updates the current value 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 | |
|---|---|
updateFunction |
UnaryOperator<V>!: a side-effect-free function |
| Return | |
|---|---|
V |
the updated value |
weakCompareAndSet
fun weakCompareAndSet(
expect: V,
update: V
): Boolean
Atomically sets the value 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 | |
|---|---|
expect |
V: the expected value |
update |
V: the new value |
| Return | |
|---|---|
Boolean |
true if successful |