java.util.concurrent.atomic
Class AtomicReference<V>

java.lang.Object
  extended by java.util.concurrent.atomic.AtomicReference
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 package specification for description of the properties of atomic variables.

Since:
1.5
See Also:
Serialized Form

Constructor Summary
AtomicReference()
          Create a new AtomicReference with null initial value.
AtomicReference(V initialValue)
          Create a new AtomicReference with the given initial value.
 
Method Summary
 boolean compareAndSet(V expect, V update)
          Atomically set the value to the given updated value if the current value == the expected value.
 V get()
          Get the current value.
 V getAndSet(V newValue)
          Set to the given value and return the old value.
 void set(V newValue)
          Set to the given value.
 boolean weakCompareAndSet(V expect, V update)
          Atomically set 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, toString, wait, wait, wait
 

Constructor Detail

AtomicReference

public AtomicReference(V initialValue)
Create a new AtomicReference with the given initial value.

Parameters:
initialValue - the initial value

AtomicReference

public AtomicReference()
Create a new AtomicReference with null initial value.

Method Detail

get

public final V get()
Get the current value.

Returns:
the current value

set

public final void set(V newValue)
Set to the given value.

Parameters:
newValue - the new value

compareAndSet

public final boolean compareAndSet(V expect,
                                   V update)
Atomically set 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 set the value to the given updated value if the current value == the expected value. May fail spuriously.

Parameters:
expect - the expected value
update - the new value
Returns:
true if successful.

getAndSet

public final V getAndSet(V newValue)
Set to the given value and return the old value.

Parameters:
newValue - the new value
Returns:
the previous value