Spec-Zone.ru › OpenJDK 24

Класс AtomicStampedReference<V>

java.lang.Object
java.util.concurrent.atomic.AtomicStampedReference<V>
Type Parameters:
V - Тип объекта, на который ссылается эта ссылка
public class AtomicStampedReference<V> extends Object
Ссылка, содержащая объект и целое число "штамп", которые можно атомарно обновлять.

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

Since:
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 с заданными начальными значениями.
Parameters:
initialRef - начальная ссылка
initialStamp - начальный штамп

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

getReference

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

getStamp

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

get

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

weakCompareAndSet

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

compareAndSet

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

set

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

attemptStamp

public boolean attemptStamp(V expectedReference, int newStamp)
Атомарно устанавливает значение штампа на заданное обновлённое значение, если текущая ссылка == ожидаемой ссылке. Любое данное вызов этой операции может завершиться неудачей (возвращает false) случайным образом, но многократное вызов, когда текущее значение соответствует ожидаемому значению, и никакой другой поток также не пытается установить значение, в конечном итоге приведёт к успеху.
Parameters:
expectedReference - ожидаемое значение ссылки
newStamp - новое значение для штампа
Returns:
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/AtomicStampedReference.html

Spec-Zone.ru

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