AtomicReferenceFieldUpdater Класс

Определение

Служебная программа на основе отражения, которая позволяет атомарным обновлениям volatile назначенных ссылочных полей назначенных классов.

[Android.Runtime.Register("java/util/concurrent/atomic/AtomicReferenceFieldUpdater", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "T", "V" })]
public abstract class AtomicReferenceFieldUpdater : Java.Lang.Object
[<Android.Runtime.Register("java/util/concurrent/atomic/AtomicReferenceFieldUpdater", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "T", "V" })>]
type AtomicReferenceFieldUpdater = class
    inherit Object
Наследование
AtomicReferenceFieldUpdater
Атрибуты

Комментарии

Служебная программа на основе отражения, которая позволяет атомарным обновлениям volatile назначенных ссылочных полей назначенных классов. Этот класс предназначен для использования в атомарных структурах данных, в которых несколько ссылочных полей одного узла независимо подвергаются атомарным обновлениям. Например, узел дерева может быть объявлен как

{@code
            class Node {
              private volatile Node left, right;

              private static final AtomicReferenceFieldUpdater<Node, Node> leftUpdater =
                AtomicReferenceFieldUpdater.newUpdater(Node.class, Node.class, "left");
              private static final AtomicReferenceFieldUpdater<Node, Node> rightUpdater =
                AtomicReferenceFieldUpdater.newUpdater(Node.class, Node.class, "right");

              Node getLeft() { return left; }
              boolean compareAndSetLeft(Node expect, Node update) {
                return leftUpdater.compareAndSet(this, expect, update);
              }
              // ... and so on
            }}

Обратите внимание, что гарантии compareAndSet метода в этом классе слабее, чем в других атомарных классах. Поскольку этот класс не может гарантировать, что все варианты использования поля подходят для атомарного доступа, он может гарантировать атомарность только в отношении других вызовов compareAndSet и set в том же средстве обновления.

Аргументы объекта для параметров типа T , которые не являются экземплярами класса, переданного в , приведут к #newUpdater возникновению ClassCastException ошибки.

Добавлено в версии 1.5.

Документация по Java для java.util.concurrent.atomic.AtomicReferenceFieldUpdater.

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License Creative Commons 2.5 Attribution License.

Конструкторы

AtomicReferenceFieldUpdater()

Защищенный конструктор do-nothing для использования подклассами.

AtomicReferenceFieldUpdater(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

Свойства

Class

Возвращает класс среды выполнения данного объекта Object.

(Унаследовано от Object)
Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
JniIdentityHashCode

Служебная программа на основе отражения, которая позволяет атомарным обновлениям volatile назначенных ссылочных полей назначенных классов.

(Унаследовано от Object)
JniPeerMembers

Служебная программа на основе отражения, которая позволяет атомарным обновлениям volatile назначенных ссылочных полей назначенных классов.

PeerReference

Служебная программа на основе отражения, которая позволяет атомарным обновлениям volatile назначенных ссылочных полей назначенных классов.

(Унаследовано от Object)
ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

AccumulateAndGet(Object, Object, IBinaryOperator)

Атомарно обновляет (с эффектами памяти, указанными в VarHandle#compareAndSet) поле заданного объекта, управляемого этим средством обновления, с результатами применения данной функции к текущим и заданным значениям, возвращая обновленное значение.

Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
CompareAndSet(Object, Object, Object)

Атомарно задает поле заданного объекта, управляемого этим методом обновления, заданное обновленное значение, если текущее значение == является ожидаемым.

Dispose()

Служебная программа на основе отражения, которая позволяет атомарным обновлениям volatile назначенных ссылочных полей назначенных классов.

(Унаследовано от Object)
Dispose(Boolean)

Служебная программа на основе отражения, которая позволяет атомарным обновлениям volatile назначенных ссылочных полей назначенных классов.

(Унаследовано от Object)
Equals(Object)

Указывает, равен ли какой-то другой объект этому объекту.

(Унаследовано от Object)
Get(Object)

Возвращает текущее значение, хранящееся в поле заданного объекта, управляемого этим средство обновления.

GetAndAccumulate(Object, Object, IBinaryOperator)

Атомарно обновляет (с эффектами памяти, указанными в VarHandle#compareAndSet) поле заданного объекта, управляемого этим методом обновления, с результатами применения данной функции к текущим и заданным значениям, возвращая предыдущее значение.

GetAndSet(Object, Object)

Атомарно задает для поля заданного объекта, управляемого этим методом обновления, заданное значение и возвращает старое значение.

GetAndUpdate(Object, IUnaryOperator)

Атомарно обновляет (с эффектами памяти, указанными в ) VarHandle#compareAndSetполе заданного объекта, управляемого этим методом обновления, с результатами применения данной функции, возвращая предыдущее значение.

GetHashCode()

Возвращает значение хэш-кода для объекта.

(Унаследовано от Object)
JavaFinalize()

Вызывается сборщиком мусора для объекта , когда сборка мусора определяет, что больше нет ссылок на объект .

(Унаследовано от Object)
LazySet(Object, Object)

В конечном итоге задает для поля заданного объекта, управляемого этим средством обновления, заданное обновленное значение.

NewUpdater(Class, Class, String)

Создает и возвращает средство обновления для объектов с заданным полем.

Notify()

Пробуждение одного потока, ожидающего на мониторе этого объекта.

(Унаследовано от Object)
NotifyAll()

Активирует все потоки, ожидающие на мониторе этого объекта.

(Унаследовано от Object)
Set(Object, Object)

Задает для поля заданного объекта, управляемого этим методом обновления, заданное обновленное значение.

SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
ToArray<T>()

Служебная программа на основе отражения, которая позволяет атомарным обновлениям volatile назначенных ссылочных полей назначенных классов.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
UnregisterFromRuntime()

Служебная программа на основе отражения, которая позволяет атомарным обновлениям volatile назначенных ссылочных полей назначенных классов.

(Унаследовано от Object)
UpdateAndGet(Object, IUnaryOperator)

Атомарно обновляет (с эффектами памяти, указанными в ) VarHandle#compareAndSetполе заданного объекта, управляемого этим методом обновления, с результатами применения данной функции, возвращая обновленное значение.

Wait()

Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления/><em> или <прерывания></em>.

(Унаследовано от Object)
Wait(Int64)

Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>em>, <>прерывания< или> em, либо до истечения определенного количества реального времени.

(Унаследовано от Object)
Wait(Int64, Int32)

Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>em>, <>прерывания< или> em, либо до истечения определенного количества реального времени.

(Унаследовано от Object)
WeakCompareAndSet(Object, Object, Object)

Атомарно задает поле заданного объекта, управляемого этим методом обновления, заданное обновленное значение, если текущее значение == является ожидаемым.

Явные реализации интерфейса

IJavaPeerable.Disposed()

Служебная программа на основе отражения, которая позволяет атомарным обновлениям volatile назначенных ссылочных полей назначенных классов.

(Унаследовано от Object)
IJavaPeerable.DisposeUnlessReferenced()

Служебная программа на основе отражения, которая позволяет атомарным обновлениям volatile назначенных ссылочных полей назначенных классов.

(Унаследовано от Object)
IJavaPeerable.Finalized()

Служебная программа на основе отражения, которая позволяет атомарным обновлениям volatile назначенных ссылочных полей назначенных классов.

(Унаследовано от Object)
IJavaPeerable.JniManagedPeerState

Служебная программа на основе отражения, которая позволяет атомарным обновлениям volatile назначенных ссылочных полей назначенных классов.

(Унаследовано от Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Служебная программа на основе отражения, которая позволяет атомарным обновлениям volatile назначенных ссылочных полей назначенных классов.

(Унаследовано от Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Служебная программа на основе отражения, которая позволяет атомарным обновлениям volatile назначенных ссылочных полей назначенных классов.

(Унаследовано от Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Служебная программа на основе отражения, которая позволяет атомарным обновлениям volatile назначенных ссылочных полей назначенных классов.

(Унаследовано от Object)

Методы расширения

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверенное средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Служебная программа на основе отражения, которая позволяет атомарным обновлениям volatile назначенных ссылочных полей назначенных классов.

GetJniTypeName(IJavaPeerable)

Служебная программа на основе отражения, которая позволяет атомарным обновлениям volatile назначенных ссылочных полей назначенных классов.

Применяется к