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 保证比其他原子类中的方法弱。 由于此类无法确保字段的所有用途都适合用于原子访问,因此它只能保证对相同更新程序的其他调用 compareAndSetset 调用的原子性。

不是传递给#newUpdater的类实例的参数T的对象参数将导致ClassCastException引发。

在 1.5 中添加。

适用于 . 的 java.util.concurrent.atomic.AtomicReferenceFieldUpdaterJava 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

构造函数

AtomicReferenceFieldUpdater()

受保护的无操作构造函数供子类使用。

AtomicReferenceFieldUpdater(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

属性

Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
JniIdentityHashCode

基于反射的实用工具,用于对指定类的指定 volatile 引用字段进行原子更新。

(继承自 Object)
JniPeerMembers

基于反射的实用工具,用于对指定类的指定 volatile 引用字段进行原子更新。

PeerReference

基于反射的实用工具,用于对指定类的指定 volatile 引用字段进行原子更新。

(继承自 Object)
ThresholdClass

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

ThresholdType

此 API 支持 Mono for 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> 或 <em>interrupted</em>。<><

(继承自 Object)
Wait(Int64, Int32)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。

(继承自 Object)
Wait(Int64)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</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 引用字段进行原子更新。

适用于