Spec-Zone .ru
спецификации, руководства, описания, API
|
V
- Тип объекта упоминается этой ссылкойpublic class AtomicMarkableReference<V> extends Object
AtomicMarkableReference
поддерживает ссылку на объект наряду с битом метки, который может быть обновлен атомарно. Примечание реализации: Эта реализация поддерживает markable ссылки, создавая внутреннее представление объектов, "упакованное" [ссылка, булевская переменная] пары.
Конструктор и Описание |
---|
AtomicMarkableReference(V initialRef, boolean initialMark)
Создает новое
AtomicMarkableReference с данными начальными значениями. |
Модификатор и Тип | Метод и Описание |
---|---|
boolean |
attemptMark(V expectedReference, boolean newMark)
Атомарно устанавливает значение метки к данному значению обновления, если текущая ссылка
== к ожидаемой ссылке. |
boolean |
compareAndSet(V expectedReference, V newReference, boolean expectedMark, boolean newMark)
Атомарно устанавливает значение обоих ссылка и метка к данным значениям обновления, если текущая ссылка
== к ожидаемой ссылке и текущей метке равно ожидаемой метке. |
V |
get(boolean[] markHolder)
Возвращает текущую стоимость и ссылки и метки.
|
V |
getReference()
Возвращает текущую стоимость ссылки.
|
boolean |
isMarked()
Возвращает текущую стоимость метки.
|
void |
set(V newReference, boolean newMark)
Безоговорочно устанавливает значение обоих ссылка и метка.
|
boolean |
weakCompareAndSet(V expectedReference, V newReference, boolean expectedMark, boolean newMark)
Атомарно устанавливает значение обоих ссылка и метка к данным значениям обновления, если текущая ссылка
== к ожидаемой ссылке и текущей метке равно ожидаемой метке. |
public AtomicMarkableReference(V initialRef, boolean initialMark)
AtomicMarkableReference
с данными начальными значениями.initialRef
- начальная ссылкаinitialMark
- начальная меткаpublic V getReference()
public boolean isMarked()
public V get(boolean[] markHolder)
boolean[1] holder; ref = v.get(holder);
.markHolder
- массив размера по крайней мере одного. По возврату, markholder[0]
будет содержать значение метки.public boolean weakCompareAndSet(V expectedReference, V newReference, boolean expectedMark, boolean newMark)
==
к ожидаемой ссылке и текущей метке равно ожидаемой метке. Может перестать работать побочно и не обеспечивает гарантии упорядочивания, так только редко соответствующая альтернатива compareAndSet
.
expectedReference
- математическое ожидание ссылкиnewReference
- новое значение для ссылкиexpectedMark
- математическое ожидание меткиnewMark
- новое значение для меткиpublic boolean compareAndSet(V expectedReference, V newReference, boolean expectedMark, boolean newMark)
==
к ожидаемой ссылке и текущей метке равно ожидаемой метке.expectedReference
- математическое ожидание ссылкиnewReference
- новое значение для ссылкиexpectedMark
- математическое ожидание меткиnewMark
- новое значение для меткиpublic void set(V newReference, boolean newMark)
newReference
- новое значение для ссылкиnewMark
- новое значение для меткиpublic boolean attemptMark(V expectedReference, boolean newMark)
==
к ожидаемой ссылке. Любой данный вызов этой работы может перестать работать (возврат false
) побочно, но повторенный вызов, когда текущая стоимость содержит математическое ожидание и никакой другой поток, также пытается установить значение, в конечном счете успешно выполнится.expectedReference
- математическое ожидание ссылкиnewMark
- новое значение для метки
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.