Класс AtomicStampedReference<V>
java.lang.Object
java.util.concurrent.atomic.AtomicStampedReference<V>
- Параметры типа:
V- Тип объекта, на который ссылается эта ссылка
public class AtomicStampedReference<V> extends Object
Объект
AtomicStampedReference хранит ссылку на объект вместе с целочисленной «меткой», которую можно обновлять атомарно. Примечание по реализации: эта реализация хранит ссылки с метками, создавая внутренние объекты, представляющие «упакованные» пары [ссылка, целое число].
- Начиная с:
- 1.5
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
AtomicStampedReference |
Создает новый AtomicStampedReference с заданными начальными значениями. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
attemptStamp |
Атомарно устанавливает значение метки в заданное значение обновления, если текущая ссылка == ожидаемой ссылке. |
boolean |
compareAndSet |
Атомарно устанавливает значения ссылки и метки в заданные значения обновления, если текущая ссылка == ожидаемой ссылке, а текущая метка равна ожидаемой метке. |
V |
get |
Возвращает текущие значения ссылки и метки. |
V |
getReference() |
Возвращает текущее значение ссылки. |
int |
getStamp() |
Возвращает текущее значение метки. |
void |
set |
Безусловно устанавливает значения ссылки и метки. |
boolean |
weakCompareAndSet |
Атомарно устанавливает значения ссылки и метки в заданные значения обновления, если текущая ссылка == ожидаемой ссылке, а текущая метка равна ожидаемой метке. |
Подробное описание конструкторов
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, 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/AtomicStampedReference.html