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