java.lang.Object | |
↳ | java.util.concurrent.atomic.AtomicStampedReference<V> |
An
AtomicStampedReference
maintains an object reference
along with an integer "stamp", that can be updated atomically.
Implementation note: This implementation maintains stamped references by creating internal objects representing "boxed" [reference, integer] pairs.
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Creates a new
AtomicStampedReference
with the given
initial values.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Atomically sets the value of the stamp to the given update value
if the current reference is
==
to the expected
reference.
|
||||||||||
|
Atomically sets the value of both the reference and stamp
to the given update values if the
current reference is
==
to the expected reference
and the current stamp is equal to the expected stamp.
|
||||||||||
|
Returns the current values of both the reference and the stamp.
|
||||||||||
|
Returns the current value of the reference.
|
||||||||||
|
Returns the current value of the stamp.
|
||||||||||
|
Unconditionally sets the value of both the reference and stamp.
|
||||||||||
|
Atomically sets the value of both the reference and stamp
to the given update values if the
current reference is
==
to the expected reference
and the current stamp is equal to the expected stamp.
|
[Expand]
Inherited Methods
|
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
|
Creates a new
AtomicStampedReference
with the given
initial values.
initialRef | the initial reference |
---|---|
initialStamp | the initial stamp |
Atomically sets the value of the stamp to the given update value
if the current reference is
==
to the expected
reference. Any given invocation of this operation may fail
(return
false
) spuriously, but repeated invocation
when the current value holds the expected value and no other
thread is also attempting to set the value will eventually
succeed.
expectedReference | the expected value of the reference |
---|---|
newStamp | the new value for the stamp |
Atomically sets the value of both the reference and stamp
to the given update values if the
current reference is
==
to the expected reference
and the current stamp is equal to the expected stamp.
expectedReference | the expected value of the reference |
---|---|
newReference | the new value for the reference |
expectedStamp | the expected value of the stamp |
newStamp | the new value for the stamp |
Returns the current values of both the reference and the stamp.
Typical usage is
int[1] holder; ref = v.get(holder);
.
stampHolder |
an array of size of at least one. On return,
stampholder[0]
will hold the value of the stamp.
|
---|
Returns the current value of the reference.
Returns the current value of the stamp.
Unconditionally sets the value of both the reference and stamp.
newReference | the new value for the reference |
---|---|
newStamp | the new value for the stamp |
Atomically sets the value of both the reference and stamp
to the given update values if the
current reference is
==
to the expected reference
and the current stamp is equal to the expected stamp.
May fail
spuriously and does not provide ordering guarantees
, so is
only rarely an appropriate alternative to
compareAndSet
.
expectedReference | the expected value of the reference |
---|---|
newReference | the new value for the reference |
expectedStamp | the expected value of the stamp |
newStamp | the new value for the stamp |