Spec-Zone.ru › OpenJDK 17

Класс AtomicMarkableReference<V>

java.lang.Object
java.util.concurrent.atomic.AtomicMarkableReference<V>
Type Parameters:
V - Тип объекта, на который ссылается данная ссылка
public class AtomicMarkableReference<V> extends Object
Объект AtomicMarkableReference хранит ссылку на объект вместе с битом метки, которые могут быть обновлены атомарно.

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

Since:
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 с заданными начальными значениями.
Parameters:
initialRef - начальная ссылка
initialMark - начальная метка

Подробное описание методов

getReference

public V getReference()
Возвращает текущее значение ссылки.
Returns:
текущее значение ссылки

isMarked

public boolean isMarked()
Возвращает текущее значение метки.
Returns:
текущее значение метки

get

public V get(boolean[] markHolder)
Возвращает текущие значения ссылки и метки. Типичное использование - boolean[1] holder; ref = v.get(holder); .
Parameters:
markHolder - массив размером не менее одного. По возвращении markHolder[0] будет содержать значение метки.
Returns:
текущее значение ссылки

weakCompareAndSet

public boolean weakCompareAndSet(V expectedReference, V newReference, boolean expectedMark, boolean newMark)
Атомарно устанавливает значения ссылки и метки на заданные значения обновления, если текущая ссылка равна ожидаемой ссылке и текущая метка равна ожидаемой метке. Данная операция может случайно завершиться неудачей и не предоставляет гарантий упорядочения, поэтому она лишь в редких случаях является приемлемой альтернативой compareAndSet.
Parameters:
expectedReference - ожидаемое значение ссылки
newReference - новое значение для ссылки
expectedMark - ожидаемое значение метки
newMark - новое значение для метки
Returns:
true если успешно

compareAndSet

public boolean compareAndSet(V expectedReference, V newReference, boolean expectedMark, boolean newMark)
Атомарно устанавливает значения ссылки и метки на заданные значения обновления, если текущая ссылка равна ожидаемой ссылке и текущая метка равна ожидаемой метке.
Parameters:
expectedReference - ожидаемое значение ссылки
newReference - новое значение для ссылки
expectedMark - ожидаемое значение метки
newMark - новое значение для метки
Returns:
true если успешно

set

public void set(V newReference, boolean newMark)
Безусловно устанавливает значения ссылки и метки.
Parameters:
newReference - новое значение для ссылки
newMark - новое значение для метки

attemptMark

public boolean attemptMark(V expectedReference, boolean newMark)
Атомарно устанавливает значение метки на заданное значение обновления, если текущая ссылка равна ожидаемой ссылке. Любой вызов этой операции может случайно завершиться неудачей (возвратить false), но повторные вызовы, когда текущее значение соответствует ожидаемому значению и никакой другой поток не пытается установить значение, в конечном итоге приведут к успеху.
Parameters:
expectedReference - ожидаемое значение ссылки
newMark - новое значение для метки
Returns:
true если успешно

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

Spec-Zone.ru

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