Spec-Zone .ru
спецификации, руководства, описания, API
|
T
- Тип объекта, содержащего обновляемое полеpublic abstract class AtomicLongFieldUpdater<T> extends Object
volatile long
поля определяемых классов. Этот класс разрабатывается для использования в атомарных структурах данных, в которых несколько полей того же самого узла независимо подвергаются атомарным обновлениям. Отметьте что гарантии compareAndSet
метод в этом классе более слаб чем в других атомарных классах. Поскольку этот класс не может гарантировать, что все использование поля является соответствующим в целях атомарного доступа, это может гарантировать атомарность только относительно других вызовов compareAndSet
и set
на том же самом updater.
Модификатор | Конструктор и Описание |
---|---|
protected |
AtomicLongFieldUpdater()
Защищенный пустой конструктор для использования подклассами.
|
Модификатор и Тип | Метод и Описание |
---|---|
long |
addAndGet(T obj, long delta)
Атомарно добавляет данное значение к текущей стоимости поля данного объекта, которым управляет этот updater.
|
abstract boolean |
compareAndSet(T obj, long expect, long update)
Атомарно устанавливает поле данного объекта, которым управляет этот updater к данному обновленному значению если текущая стоимость
== математическое ожидание. |
long |
decrementAndGet(T obj)
Атомарно декременты одним текущая стоимость поля данного объекта управляли этим updater.
|
abstract long |
get(T obj)
Содержали текущую стоимость в поле данного объекта, которым управляет этот updater.
|
long |
getAndAdd(T obj, long delta)
Атомарно добавляет данное значение к текущей стоимости поля данного объекта, которым управляет этот updater.
|
long |
getAndDecrement(T obj)
Атомарно декременты одним текущая стоимость поля данного объекта управляли этим updater.
|
long |
getAndIncrement(T obj)
Атомарно инкременты одним текущая стоимость поля данного объекта управляли этим updater.
|
long |
getAndSet(T obj, long newValue)
Атомарно устанавливает поле данного объекта, которым управляет этот updater к данному значению, и возвращает старое значение.
|
long |
incrementAndGet(T obj)
Атомарно инкременты одним текущая стоимость поля данного объекта управляли этим updater.
|
abstract void |
lazySet(T obj, long newValue)
В конечном счете устанавливает поле данного объекта, которым управляет этот updater к данному обновленному значению.
|
static <U> AtomicLongFieldUpdater<U> |
newUpdater(Class<U> tclass, String fieldName)
Создает и возвращает updater для объектов с данным полем.
|
abstract void |
set(T obj, long newValue)
Устанавливает поле данного объекта, которым управляет этот updater к данному обновленному значению.
|
abstract boolean |
weakCompareAndSet(T obj, long expect, long update)
Атомарно устанавливает поле данного объекта, которым управляет этот updater к данному обновленному значению если текущая стоимость
== математическое ожидание. |
protected AtomicLongFieldUpdater()
public static <U> AtomicLongFieldUpdater<U> newUpdater(Class<U> tclass, String fieldName)
tclass
- класс удерживающих позиции объектовfieldName
- имя поля, которое будет обновлено.IllegalArgumentException
- если поле не является энергозависимым длинным типом.RuntimeException
- с вложенным основанным на отражении исключением, если класс не содержит поле или является неправильным типом.public abstract boolean compareAndSet(T obj, long expect, long update)
==
математическое ожидание. Этот метод, как гарантируют, будет атомарным относительно других звонков compareAndSet
и set
, но не обязательно относительно других изменений в поле.obj
- Объект, чье поле, чтобы условно установитьexpect
- математическое ожиданиеupdate
- новое значениеClassCastException
- если obj
не экземпляр класса, обладающего полем, установленным в конструкторе.public abstract boolean weakCompareAndSet(T obj, long expect, long update)
==
математическое ожидание. Этот метод, как гарантируют, будет атомарным относительно других звонков compareAndSet
и set
, но не обязательно относительно других изменений в поле. Может перестать работать побочно и не обеспечивает гарантии упорядочивания, так только редко соответствующая альтернатива compareAndSet
.
obj
- Объект, чье поле, чтобы условно установитьexpect
- математическое ожиданиеupdate
- новое значениеClassCastException
- если obj
не экземпляр класса, обладающего полем, установленным в конструкторе.public abstract void set(T obj, long newValue)
compareAndSet
.obj
- Объект, чье поле, чтобы установитьnewValue
- новое значениеpublic abstract void lazySet(T obj, long newValue)
obj
- Объект, чье поле, чтобы установитьnewValue
- новое значениеpublic abstract long get(T obj)
obj
- Объект, чье поле, чтобы добратьсяpublic long getAndSet(T obj, long newValue)
obj
- Объект, чье поле, чтобы добраться и установитьnewValue
- новое значениеpublic long getAndIncrement(T obj)
obj
- Объект, чье поле, чтобы добраться и установитьpublic long getAndDecrement(T obj)
obj
- Объект, чье поле, чтобы добраться и установитьpublic long getAndAdd(T obj, long delta)
obj
- Объект, чье поле, чтобы добраться и установитьdelta
- значение, чтобы добавитьpublic long incrementAndGet(T obj)
obj
- Объект, чье поле, чтобы добраться и установитьpublic long decrementAndGet(T obj)
obj
- Объект, чье поле, чтобы добраться и установитьpublic long addAndGet(T obj, long delta)
obj
- Объект, чье поле, чтобы добраться и установитьdelta
- значение, чтобы добавить
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.