Spec-Zone.ru › OpenJDK 21

Класс 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)
Атомарно устанавливает значение ссылки и флага на заданные обновлённые значения, если текущая ссылка == ожидаемой ссылке и текущий флаг равен ожидаемому флагу.

Методы, объявленные в классе java.lang.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 в случае успеха

© 1993, 2023, 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/21/docs/api/java.base/java/util/concurrent/atomic/AtomicMarkableReference.html

Spec-Zone.ru

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