| 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 |