Класс 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, 2021, 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/17/docs/api/java.base/java/util/concurrent/atomic/AtomicStampedReference.html