Java atomicreference
AtomicReference
is a class in Java's java.util.concurrent.atomic
package that provides atomic operations on object references. An atomic operation is an operation that is performed as a single, indivisible unit of execution, which means that it appears to occur instantaneously and cannot be interrupted by other operations.
The AtomicReference
class provides the following atomic operations on object references:
get()
: Returns the current value of theAtomicReference
.set(V newValue)
: Sets the value of theAtomicReference
to the specified new value.getAndSet(V newValue)
: Atomically sets the value of theAtomicReference
to the specified new value and returns the previous value.compareAndSet(V expect, V update)
: Atomically sets the value of theAtomicReference
to the specified new value if the current value equals the expected value, and returns true if the update was successful.
These operations are useful for implementing thread-safe algorithms that require access to shared data. The AtomicReference
class is especially useful for implementing lock-free data structures and algorithms that require high-performance concurrent access to object references.
Additionally, there are other variants of AtomicReference
that provide more specific functionality:
AtomicStampedReference<V>
: provides atomic operations on a pair of reference and stamp values.AtomicMarkableReference<V>
: provides atomic operations on a pair of reference and boolean marker values.