Spec-Zone .ru
спецификации, руководства, описания, API
|
V
- Тип объекта упоминается этой ссылкойpublic class AtomicStampedReference<V> extends Object
AtomicStampedReference
поддерживает ссылку на объект наряду с целочисленным "штампом", который может быть обновлен атомарно. Примечание реализации: Эта реализация поддерживает штампованные ссылки, создавая внутреннее представление объектов, "упакованное" [ссылка, целое число] пары.
Конструктор и Описание |
---|
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)
Атомарно устанавливает значение обоих ссылка и штамп к данным значениям обновления, если текущая ссылка
== к ожидаемой ссылке и текущему штампу равно ожидаемому штампу. |
public AtomicStampedReference(V initialRef, int initialStamp)
AtomicStampedReference
с данными начальными значениями.initialRef
- начальная ссылкаinitialStamp
- начальный штампpublic V getReference()
public int getStamp()
public V get(int[] stampHolder)
int[1] holder; ref = v.get(holder);
.stampHolder
- массив размера по крайней мере одного. По возврату, stampholder[0]
будет содержать значение штампа.public boolean weakCompareAndSet(V expectedReference, V newReference, int expectedStamp, int newStamp)
==
к ожидаемой ссылке и текущему штампу равно ожидаемому штампу. Может перестать работать побочно и не обеспечивает гарантии упорядочивания, так только редко соответствующая альтернатива compareAndSet
.
expectedReference
- математическое ожидание ссылкиnewReference
- новое значение для ссылкиexpectedStamp
- математическое ожидание штампаnewStamp
- новое значение для штампаpublic boolean compareAndSet(V expectedReference, V newReference, int expectedStamp, int newStamp)
==
к ожидаемой ссылке и текущему штампу равно ожидаемому штампу.expectedReference
- математическое ожидание ссылкиnewReference
- новое значение для ссылкиexpectedStamp
- математическое ожидание штампаnewStamp
- новое значение для штампаpublic void set(V newReference, int newStamp)
newReference
- новое значение для ссылкиnewStamp
- новое значение для штампаpublic boolean attemptStamp(V expectedReference, int newStamp)
==
к ожидаемой ссылке. Любой данный вызов этой работы может перестать работать (возврат false
) побочно, но повторенный вызов, когда текущая стоимость содержит математическое ожидание и никакой другой поток, также пытается установить значение, в конечном счете успешно выполнится.expectedReference
- математическое ожидание ссылкиnewStamp
- новое значение для штампа
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.