Класс AtomicMarkableReference<V>
java.lang.Object
java.util.concurrent.atomic.AtomicMarkableReference<V>
- Параметры типа:
V- тип объекта, на который ссылается эта ссылка
public class AtomicMarkableReference<V> extends Object
AtomicMarkableReference хранит ссылку на объект вместе с битом-маркером, которые можно обновлять атомарно. Примечание по реализации: эта реализация хранит ссылки с маркерами, создавая внутренние объекты, представляющие «упакованные» пары [ссылка, boolean].
- Начиная с:
- 1.5
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
AtomicMarkableReference |
Создает новый AtomicMarkableReference с заданными начальными значениями. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
attemptMark |
Атомарно устанавливает значение маркера в заданное новое значение, если текущая ссылка == ожидаемой ссылке. |
boolean |
compareAndSet |
Атомарно устанавливает значения ссылки и маркера в заданные новые значения, если текущая ссылка == ожидаемой ссылке, а текущий маркер равен ожидаемому маркеру. |
V |
get |
Возвращает текущие значения ссылки и маркера. |
V |
getReference() |
Возвращает текущее значение ссылки. |
boolean |
isMarked() |
Возвращает текущее значение маркера. |
void |
set |
Безусловно устанавливает значения ссылки и маркера. |
boolean |
weakCompareAndSet |
Атомарно устанавливает значения ссылки и маркера в заданные новые значения, если текущая ссылка == ожидаемой ссылке, а текущий маркер равен ожидаемому маркеру. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект другому объекту. |
protected void |
finalize() |
Устарело и будет удалено: этот элемент API может быть удален в будущей версии. Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного времени. |
Подробное описание конструкторов
AtomicMarkableReference
public AtomicMarkableReference(V initialRef, boolean initialMark)
Создает новый
AtomicMarkableReference с заданными начальными значениями.- Параметры:
-
initialRef- исходная ссылка -
initialMark- исходный маркер
Подробное описание методов
getReference
public V getReference()
Возвращает текущее значение ссылки.
- Возвращает:
- текущее значение ссылки
isMarked
public boolean isMarked()
Возвращает текущее значение маркера.
- Возвращает:
- текущее значение маркера
get
public V get(boolean[] markHolder)
Возвращает текущие значения ссылки и маркера. Обычно используется так:
boolean[1] holder; ref = v.get(holder); .- Параметры:
-
markHolder- массив размером не менее одного элемента. По возвращенииmarkHolder[0]будет содержать значение маркера. - Возвращает:
- текущее значение ссылки
weakCompareAndSet
public boolean weakCompareAndSet(V expectedReference, V newReference, boolean expectedMark, boolean newMark)
Атомарно устанавливает значения ссылки и маркера в заданные новые значения, если текущая ссылка
== ожидаемой ссылке, а текущий маркер равен ожидаемому маркеру. Эта операция может завершиться неудачей без видимой причины и не гарантирует порядок выполнения, поэтому лишь в редких случаях является подходящей альтернативой compareAndSet.- Параметры:
-
expectedReference- ожидаемое значение ссылки -
newReference- новое значение ссылки -
expectedMark- ожидаемое значение маркера -
newMark- новое значение маркера - Возвращает:
-
trueв случае успеха
compareAndSet
public boolean compareAndSet(V expectedReference, V newReference, boolean expectedMark, boolean newMark)
Атомарно устанавливает значения ссылки и маркера в заданные новые значения, если текущая ссылка
== ожидаемой ссылке, а текущий маркер равен ожидаемому маркеру.- Параметры:
-
expectedReference- ожидаемое значение ссылки -
newReference- новое значение ссылки -
expectedMark- ожидаемое значение маркера -
newMark- новое значение маркера - Возвращает:
-
trueв случае успеха
set
public void set(V newReference, boolean newMark)
Безусловно устанавливает значения ссылки и маркера.
- Параметры:
-
newReference- новое значение ссылки -
newMark- новое значение маркера
attemptMark
public boolean attemptMark(V expectedReference, boolean newMark)
Атомарно устанавливает значение маркера в заданное новое значение, если текущая ссылка
== ожидаемой ссылке. Любой вызов этой операции может завершиться неудачей (вернуть false) без видимой причины, однако повторные вызовы в ситуации, когда текущее значение соответствует ожидаемому и ни один другой поток также не пытается установить значение, в конечном итоге завершатся успешно.- Параметры:
-
expectedReference- ожидаемое значение ссылки -
newMark- новое значение маркера - Возвращает:
-
trueв случае успеха
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.