Класс 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 |
Атомарно устанавливает значение ссылки и метки на заданные значения обновления, если текущая ссылка равна ожидаемой ссылке и текущая метка равна ожидаемой метке. |
Подробное описание конструкторов
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.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/concurrent/atomic/AtomicMarkableReference.html