AtomicReferenceFieldUpdater 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
一种基于反射的实用工具,允许对指定类的指定 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
保证比其他原子类中要弱。 由于此类无法确保字段的所有用法都适用于原子访问目的,因此它只能保证仅针对同一更新程序上的 和 set
的其他调用compareAndSet
的原子性。
类型参数 T
的对象参数不是传递给 #newUpdater
的类的实例将导致 ClassCastException
引发 。
在 1.5 中添加。
的 java.util.concurrent.atomic.AtomicReferenceFieldUpdater
Java 文档。
此页面的某些部分是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的条款使用。
构造函数
AtomicReferenceFieldUpdater() |
供子类使用的受保护无用构造函数。 |
AtomicReferenceFieldUpdater(IntPtr, JniHandleOwnership) |
创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。 |
属性
Class |
返回此 |
Handle |
基础 Android 实例的句柄。 (继承自 Object) |
JniIdentityHashCode |
一种基于反射的实用工具,允许对指定类的指定 |
JniPeerMembers |
一种基于反射的实用工具,允许对指定类的指定 |
PeerReference |
一种基于反射的实用工具,允许对指定类的指定 |
ThresholdClass |
此 API 支持 Mono for Android 基础结构,不应直接从代码中使用。 |
ThresholdType |
此 API 支持 Mono for 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> 或 <em>interrupted</em>。<> (继承自 Object) |
Wait(Int64) |
导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<> (继承自 Object) |
Wait(Int64, Int32) |
导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</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) |
一种基于反射的实用工具,允许对指定类的指定 |