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
.
Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License Creative Commons 2.5 Attribution License.
Конструкторы
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) |
Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>em>, <>прерывания< или> em, либо до истечения определенного количества реального времени. (Унаследовано от Object) |
Wait(Int64, Int32) |
Заставляет текущий поток ждать, пока он не будет пробужден, как правило, из-за <уведомления</>em>, <>прерывания< или> 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) |
Служебная программа на основе отражения, которая позволяет атомарным обновлениям |