Spec-Zone.ru › OpenJDK 21

Класс AtomicStampedReference<V>

java.lang.Object
java.util.concurrent.atomic.AtomicStampedReference<V>
Параметры типа:
V - Тип объекта, на который ссылается эта ссылка
public class AtomicStampedReference<V> extends Object
Объект AtomicStampedReference хранит ссылку на объект вместе с целым числом «штамп», которые могут быть обновлены атомарно.

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

С тех пор:
1.5

Краткое описание конструкторов

Конструктор Описание
AtomicStampedReference(V initialRef, int initialStamp)
Создаёт новый AtomicStampedReference с заданными начальными значениями.

Краткое описание методов

Модификатор и тип Метод Описание
boolean attemptStamp(V expectedReference, int newStamp)
Атомарно устанавливает значение штампа на заданное значение обновления, если текущая ссылка == ожидаемой ссылке.
boolean compareAndSet(V expectedReference, V newReference, int expectedStamp, int newStamp)
Атомарно устанавливает значения ссылки и штампа на заданные значения обновления, если текущая ссылка == ожидаемой ссылке и текущий штамп равен ожидаемому штампу.
V get(int[] stampHolder)
Возвращает текущие значения ссылки и штампа.
V getReference()
Возвращает текущее значение ссылки.
int getStamp()
Возвращает текущее значение штампа.
void set(V newReference, int newStamp)
Безусловно устанавливает значения ссылки и штампа.
boolean weakCompareAndSet(V expectedReference, V newReference, int expectedStamp, int newStamp)
Атомарно устанавливает значения ссылки и штампа на заданные значения обновления, если текущая ссылка == ожидаемой ссылке и текущий штамп равен ожидаемому штампу.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

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

AtomicStampedReference

public AtomicStampedReference(V initialRef, int initialStamp)
Создаёт новый AtomicStampedReference с заданными начальными значениями.
Параметры:
initialRef - начальная ссылка
initialStamp - начальный штамп

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

getReference

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

getStamp

public int getStamp()
Возвращает текущее значение штампа.
Возвращает:
текущее значение штампа

get

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

weakCompareAndSet

public boolean weakCompareAndSet(V expectedReference, V newReference, int expectedStamp, int newStamp)
Атомарно устанавливает значения ссылки и штампа на заданные значения обновления, если текущая ссылка == ожидаемой ссылке и текущий штамп равен ожидаемому штампу. Эта операция может случайно завершиться неудачей и не обеспечивает гарантий упорядочения, поэтому является редко подходящей альтернативой compareAndSet.
Параметры:
expectedReference - ожидаемое значение ссылки
newReference - новое значение для ссылки
expectedStamp - ожидаемое значение штампа
newStamp - новое значение для штампа
Возвращает:
true при успехе

compareAndSet

public boolean compareAndSet(V expectedReference, V newReference, int expectedStamp, int newStamp)
Атомарно устанавливает значения ссылки и штампа на заданные значения обновления, если текущая ссылка == ожидаемой ссылке и текущий штамп равен ожидаемому штампу.
Параметры:
expectedReference - ожидаемое значение ссылки
newReference - новое значение для ссылки
expectedStamp - ожидаемое значение штампа
newStamp - новое значение для штампа
Возвращает:
true при успехе

set

public void set(V newReference, int newStamp)
Безусловно устанавливает значения ссылки и штампа.
Параметры:
newReference - новое значение для ссылки
newStamp - новое значение для штампа

attemptStamp

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

© 1993, 2023, 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/21/docs/api/java.base/java/util/concurrent/atomic/AtomicStampedReference.html

Spec-Zone.ru

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