java.lang.Object | |
↳ | java.util.concurrent.atomic.AtomicMarkableReference<V> |
An
AtomicMarkableReference
maintains an object reference
along with a mark bit, that can be updated atomically.
Implementation note: This implementation maintains markable references by creating internal objects representing "boxed" [reference, boolean] pairs.
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Creates a new
AtomicMarkableReference
with the given
initial values.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
Atomically sets the value of the mark to the given update value
if the current reference is
==
to the expected
reference.
|
||||||||||
|
Atomically sets the value of both the reference and mark
to the given update values if the
current reference is
==
to the expected reference
and the current mark is equal to the expected mark.
|
||||||||||
|
Returns the current values of both the reference and the mark.
|
||||||||||
|
Returns the current value of the reference.
|
||||||||||
|
Returns the current value of the mark.
|
||||||||||
|
Unconditionally sets the value of both the reference and mark.
|
||||||||||
|
Atomically sets the value of both the reference and mark
to the given update values if the
current reference is
==
to the expected reference
and the current mark is equal to the expected mark.
|
[Expand]
Inherited Methods
|
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
|
Creates a new
AtomicMarkableReference
with the given
initial values.
initialRef | the initial reference |
---|---|
initialMark | the initial mark |
Atomically sets the value of the mark 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 |
---|---|
newMark | the new value for the mark |
Atomically sets the value of both the reference and mark
to the given update values if the
current reference is
==
to the expected reference
and the current mark is equal to the expected mark.
expectedReference | the expected value of the reference |
---|---|
newReference | the new value for the reference |
expectedMark | the expected value of the mark |
newMark | the new value for the mark |
Returns the current values of both the reference and the mark.
Typical usage is
boolean[1] holder; ref = v.get(holder);
.
markHolder |
an array of size of at least one. On return,
markholder[0]
will hold the value of the mark.
|
---|
Returns the current value of the reference.
Returns the current value of the mark.
Unconditionally sets the value of both the reference and mark.
newReference | the new value for the reference |
---|---|
newMark | the new value for the mark |
Atomically sets the value of both the reference and mark
to the given update values if the
current reference is
==
to the expected reference
and the current mark is equal to the expected mark.
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 |
expectedMark | the expected value of the mark |
newMark | the new value for the mark |