Spec-Zone .ru
спецификации, руководства, описания, API
|
T
- Тип объекта, содержащего обновляемое полеpublic abstract class AtomicLongFieldUpdater<T> extends Object
volatile long
поля определяемых классов. Этот class разрабатывается для использования в атомарных структурах данных, в которых несколько полей того же самого узла независимо подвергаются атомарным обновлениям. Отметьте что гарантии compareAndSet
метод в этом class более слаб чем в других атомарных классах. Поскольку этот class не может гарантировать, что все использование поля является соответствующим в целях атомарного доступа, это может гарантировать атомарность только относительно других вызовов compareAndSet
и set
на том же самом updater.
Модификатор | Конструктор и Описание |
---|---|
protected |
AtomicLongFieldUpdater()
Защищенный пустой конструктор для использования подклассами.
|
Модификатор и Тип | Метод и Описание |
---|---|
long |
accumulateAndGet(T obj, long x, LongBinaryOperator accumulatorFunction)
Атомарно обновляет поле данного объекта, которым управляет этот updater с результатами применения заданной функции к току и данным значениям, возвращая обновленное значение.
|
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 |
getAndAccumulate(T obj, long x, LongBinaryOperator accumulatorFunction)
Атомарно обновляет поле данного объекта, которым управляет этот 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 |
getAndUpdate(T obj, LongUnaryOperator updateFunction)
Атомарно обновляет поле данного объекта, которым управляет этот 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 к данному обновленному значению.
|
long |
updateAndGet(T obj, LongUnaryOperator updateFunction)
Атомарно обновляет поле данного объекта, которым управляет этот 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
- class удерживающих позиции объектовfieldName
- имя поля, которое будет обновлено.IllegalArgumentException
- если поле не является энергозависимым длинным типом.RuntimeException
- с вложенным основанным на отражении исключением, если class не содержит поле или является неправильным типом, или поле недоступно вызывающей стороне согласно управлению доступом языка Javapublic abstract boolean compareAndSet(T obj, long expect, long update)
==
математическое ожидание. Этот метод, как гарантируют, будет атомарным относительно других звонков compareAndSet
и set
, но не обязательно относительно других изменений в поле.obj
- Объект, чье поле, чтобы условно установитьexpect
- математическое ожиданиеupdate
- новое значениеClassCastException
- если obj
не экземпляр class, обладающего полем, установленным в конструкторе.public abstract boolean weakCompareAndSet(T obj, long expect, long update)
==
математическое ожидание. Этот метод, как гарантируют, будет атомарным относительно других звонков compareAndSet
и set
, но не обязательно относительно других изменений в поле. Может перестать работать побочно и не обеспечивает гарантии упорядочивания, так только редко соответствующая альтернатива compareAndSet
.
obj
- Объект, чье поле, чтобы условно установитьexpect
- математическое ожиданиеupdate
- новое значениеClassCastException
- если obj
не экземпляр class, обладающего полем, установленным в конструкторе.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
- значение, чтобы добавитьpublic final long getAndUpdate(T obj, LongUnaryOperator updateFunction)
obj
- Объект, чье поле, чтобы добраться и установитьupdateFunction
- функция без побочных эффектовpublic final long updateAndGet(T obj, LongUnaryOperator updateFunction)
obj
- Объект, чье поле, чтобы добраться и установитьupdateFunction
- функция без побочных эффектовpublic final long getAndAccumulate(T obj, long x, LongBinaryOperator accumulatorFunction)
obj
- Объект, чье поле, чтобы добраться и установитьx
- значение обновленияaccumulatorFunction
- функция без побочных эффектов двух параметровpublic final long accumulateAndGet(T obj, long x, LongBinaryOperator accumulatorFunction)
obj
- Объект, чье поле, чтобы добраться и установитьx
- значение обновленияaccumulatorFunction
- функция без побочных эффектов двух параметров
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92