|
Préférences
Moteurs de recherche
|
||||||||||||||||||||||||
JavaTM 2 Platform Std. Ed. v1.6.0
java.util.concurrent.atomic
|
Constructor Summary | |
---|---|
protected |
AtomicReferenceFieldUpdater()
Protected do-nothing constructor for use by subclasses. |
Method Summary | ||
---|---|---|
abstract boolean |
compareAndSet(T obj,
V expect,
V update)
Atomically sets the field of the given object managed by this updater to the given updated value if the current value == the
expected value. |
|
abstract V |
get(T obj)
Gets the current value held in the field of the given object managed by this updater. |
|
V |
getAndSet(T obj,
V newValue)
Atomically sets the field of the given object managed by this updater to the given value and returns the old value. |
|
abstract void |
lazySet(T obj,
V newValue)
Eventually sets the field of the given object managed by this updater to the given updated value. |
|
static
|
newUpdater(Class<U> tclass,
Class<W> vclass,
String fieldName)
Creates and returns an updater for objects with the given field. |
|
abstract void |
set(T obj,
V newValue)
Sets the field of the given object managed by this updater to the given updated value. |
|
abstract boolean |
weakCompareAndSet(T obj,
V expect,
V update)
Atomically sets the field of the given object managed by this updater 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 |
---|
protected AtomicReferenceFieldUpdater()
Method Detail |
---|
public static <U,W> AtomicReferenceFieldUpdater<U,W> newUpdater(Class<U> tclass, Class<W> vclass, String fieldName)
tclass
- the class of the objects holding the field.vclass
- the class of the fieldfieldName
- the name of the field to be updated.
IllegalArgumentException
- if the field is not a volatile reference type.
RuntimeException
- with a nested reflection-based
exception if the class does not hold field or is the wrong type.public abstract boolean compareAndSet(T obj, V expect, V update)
==
the
expected value. This method is guaranteed to be atomic with respect to
other calls to compareAndSet
and set
, but not
necessarily with respect to other changes in the field.
obj
- An object whose field to conditionally setexpect
- the expected valueupdate
- the new value
public abstract boolean weakCompareAndSet(T obj, V expect, V update)
==
the
expected value. This method is guaranteed to be atomic with respect to
other calls to compareAndSet
and set
, but not
necessarily with respect to other changes in the field.
May fail spuriously
and does not provide ordering guarantees, so is only rarely an
appropriate alternative to compareAndSet
.
obj
- An object whose field to conditionally setexpect
- the expected valueupdate
- the new value
public abstract void set(T obj, V newValue)
compareAndSet
.
obj
- An object whose field to setnewValue
- the new valuepublic abstract void lazySet(T obj, V newValue)
obj
- An object whose field to setnewValue
- the new valuepublic abstract V get(T obj)
obj
- An object whose field to get
public V getAndSet(T obj, V newValue)
obj
- An object whose field to get and setnewValue
- the new value