Class AtomicReference<V>

java.lang.Object
java.util.concurrent.atomic.AtomicReference<V>
Type Parameters:
V - The type of object referred to by this reference
All Implemented Interfaces:
Serializable

public class AtomicReference<V>
extends Object
implements Serializable
An object reference that may be updated atomically. See the java.util.concurrent.atomic package specification for description of the properties of atomic variables.
Since:
1.5
Author:
Doug Lea
See Also:
Serialized Form
  • Constructor Summary

    Constructors
    Constructor Description
    AtomicReference()
    Creates a new AtomicReference with null initial value.
    AtomicReference​(V initialValue)
    Creates a new AtomicReference with the given initial value.
  • Method Summary

    Modifier and Type Method Description
    boolean compareAndSet​(V expect, V update)
    Atomically sets the value to the given updated value if the current value == the expected value.
    V get()
    Gets the current value.
    V getAndSet​(V newValue)
    Atomically sets to the given value and returns the old value.
    void lazySet​(V newValue)
    Eventually sets to the given value.
    void set​(V newValue)
    Sets to the given value.
    String toString()
    Returns the String representation of the current value.
    boolean weakCompareAndSet​(V expect, V update)
    Atomically sets the value to the given updated value if the current value == the expected value.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • AtomicReference

      public AtomicReference​(V initialValue)
      Creates a new AtomicReference with the given initial value.
      Parameters:
      initialValue - the initial value
    • AtomicReference

      public AtomicReference()
      Creates a new AtomicReference with null initial value.
  • Method Details

    • get

      public final V get()
      Gets the current value.
      Returns:
      the current value
    • set

      public final void set​(V newValue)
      Sets to the given value.
      Parameters:
      newValue - the new value
    • lazySet

      public final void lazySet​(V newValue)
      Eventually sets to the given value.
      Parameters:
      newValue - the new value
      Since:
      1.6
    • compareAndSet

      public final boolean compareAndSet​(V expect, V update)
      Atomically sets the value to the given updated value if the current value == the expected value.
      Parameters:
      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.
    • weakCompareAndSet

      public final boolean weakCompareAndSet​(V expect, V update)
      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 - the expected value
      update - the new value
      Returns:
      true if successful
    • getAndSet

      public final V getAndSet​(V newValue)
      Atomically sets to the given value and returns the old value.
      Parameters:
      newValue - the new value
      Returns:
      the previous value
    • toString

      public String toString()
      Returns the String representation of the current value.
      Overrides:
      toString in class Object
      Returns:
      the String representation of the current value