Класс AtomicMarkableReference<V>
java.lang.Object
java.util.concurrent.atomic.AtomicMarkableReference<V>
- Параметры типа:
V— тип объекта, на который ссылается эта ссылка
public class AtomicMarkableReference<V> extends Object
AtomicMarkableReference хранит ссылку на объект вместе с битом-маркером, которые можно обновить атомарно. Примечание по реализации: эта реализация хранит ссылки с маркерами, создавая внутренние объекты, представляющие пары [ссылка, логическое значение] в «упакованном» виде.
- Начиная с:
- 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/concurrent/atomic/AtomicMarkableReference.html