Класс 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) | Создаёт новый |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
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, 2020, 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/11/docs/api/java.base/java/util/concurrent/atomic/AtomicMarkableReference.html