Spec-Zone.ru › OpenJDK 25

Класс AtomicMarkableReference<V>

java.lang.Object
java.util.concurrent.atomic.AtomicMarkableReference<V>
Параметры типа:
V — тип объекта, на который ссылается эта ссылка
public class AtomicMarkableReference<V> extends Object
AtomicMarkableReference хранит ссылку на объект вместе с битом-маркером, которые можно обновить атомарно.

Примечание по реализации: эта реализация хранит ссылки с маркерами, создавая внутренние объекты, представляющие пары [ссылка, логическое значение] в «упакованном» виде.

Начиная с:
1.5

Краткое описание конструкторов

Конструктор Описание
AtomicMarkableReference(V initialRef, boolean initialMark)
Создает новый AtomicMarkableReference с заданными начальными значениями.

Краткое описание методов

Модификатор и тип Метод Описание
boolean attemptMark(V expectedReference, boolean newMark)
Атомарно задает значение маркера, равное указанному новому значению, если текущая ссылка == ожидаемой ссылке.
boolean compareAndSet(V expectedReference, V newReference, boolean expectedMark, boolean newMark)
Атомарно задает для ссылки и маркера указанные новые значения, если текущая ссылка == ожидаемой ссылке, а текущий маркер равен ожидаемому маркеру.
V get(boolean[] markHolder)
Возвращает текущие значения ссылки и маркера.
V getReference()
Возвращает текущее значение ссылки.
boolean isMarked()
Возвращает текущее значение маркера.
void set(V newReference, boolean newMark)
Безусловно задает значения ссылки и маркера.
boolean weakCompareAndSet(V expectedReference, V newReference, boolean expectedMark, boolean newMark)
Атомарно задает для ссылки и маркера указанные новые значения, если текущая ссылка == ожидаемой ссылке, а текущий маркер равен ожидаемому маркеру.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, 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 в случае успеха

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/concurrent/atomic/AtomicMarkableReference.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API