Spec-Zone.ru › OpenJDK 8

Класс AtomicMarkableReference<V>

  • java.lang.Object
    • java.util.concurrent.atomic.AtomicMarkableReference<V>
Параметры типа:
V - Тип объекта, на который ссылается эта ссылка

public class AtomicMarkableReference<V>
extends Object

Объект AtomicMarkableReference хранит ссылку на объект вместе с битом метки, которые могут быть обновлены атомарно.

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

С тех пор:
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, 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.

Spec-Zone.ru

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