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
- Наследование
- Атрибуты
Комментарии
Служебная программа на основе отражения, которая позволяет атомарным обновлениям назначенных 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
.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.
Конструкторы
AtomicReferenceFieldUpdater() |
Защищенный конструктор do-nothing для использования подклассами. |
AtomicReferenceFieldUpdater(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
Свойства
Class |
Возвращает класс среды выполнения этого |
Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
JniIdentityHashCode |
Служебная программа на основе отражения, которая позволяет атомарным обновлениям назначенных |
JniPeerMembers |
Служебная программа на основе отражения, которая позволяет атомарным обновлениям назначенных |
PeerReference |
Служебная программа на основе отражения, которая позволяет атомарным обновлениям назначенных |
ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Методы
AccumulateAndGet(Object, Object, IBinaryOperator) |
Атомарно обновляет (с эффектами памяти, указанными |
Clone() |
Создает и возвращает копию этого объекта. (Унаследовано от Object) |
CompareAndSet(Object, Object, Object) |
Атомарно задает поле заданного объекта, управляемого этим обновлением, заданному обновленному значению, если текущее значение |
Dispose() |
Служебная программа на основе отражения, которая позволяет атомарным обновлениям назначенных |
Dispose(Boolean) |
Служебная программа на основе отражения, которая позволяет атомарным обновлениям назначенных |
Equals(Object) |
Указывает, равен ли другой объект этому объекту. (Унаследовано от Object) |
Get(Object) |
Возвращает текущее значение, удерживаемое в поле заданного объекта, управляемого этим обновлением. |
GetAndAccumulate(Object, Object, IBinaryOperator) |
Атомарно обновляет (с эффектами памяти, указанными |
GetAndSet(Object, Object) |
Атомарно задает поле заданного объекта, управляемого этим обновлением, заданному значению, и возвращает старое значение. |
GetAndUpdate(Object, IUnaryOperator) |
Атомарно обновляет (с эффектами памяти, указанными |
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>() |
Служебная программа на основе отражения, которая позволяет атомарным обновлениям назначенных |
ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
UnregisterFromRuntime() |
Служебная программа на основе отражения, которая позволяет атомарным обновлениям назначенных |
UpdateAndGet(Object, IUnaryOperator) |
Атомарно обновляет (с эффектами памяти, указанными |
Wait() |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>помощи уведомления</em> или <эм>прерванного</em>. (Унаследовано от Object) |
Wait(Int64, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
WeakCompareAndSet(Object, Object, Object) |
Атомарно задает поле заданного объекта, управляемого этим обновлением, заданному обновленному значению, если текущее значение |
Явные реализации интерфейса
IJavaPeerable.Disposed() |
Служебная программа на основе отражения, которая позволяет атомарным обновлениям назначенных |
IJavaPeerable.DisposeUnlessReferenced() |
Служебная программа на основе отражения, которая позволяет атомарным обновлениям назначенных |
IJavaPeerable.Finalized() |
Служебная программа на основе отражения, которая позволяет атомарным обновлениям назначенных |
IJavaPeerable.JniManagedPeerState |
Служебная программа на основе отражения, которая позволяет атомарным обновлениям назначенных |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Служебная программа на основе отражения, которая позволяет атомарным обновлениям назначенных |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Служебная программа на основе отражения, которая позволяет атомарным обновлениям назначенных |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Служебная программа на основе отражения, которая позволяет атомарным обновлениям назначенных |
Методы расширения
JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
JavaCast<TResult>(IJavaObject) |
Служебная программа на основе отражения, которая позволяет атомарным обновлениям назначенных |
GetJniTypeName(IJavaPeerable) |
Служебная программа на основе отражения, которая позволяет атомарным обновлениям назначенных |