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
保证比其他原子类中的方法弱。 由于此类无法确保字段的所有用途都适合用于原子访问,因此它只能保证对相同更新程序的其他调用 compareAndSet
和 set
调用的原子性。
不是传递给#newUpdater
的类实例的参数T
的对象参数将导致ClassCastException
引发。
在 1.5 中添加。
适用于 . 的 java.util.concurrent.atomic.AtomicReferenceFieldUpdater
Java 文档
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。
构造函数
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, Int32) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。 (继承自 Object) |
Wait(Int64) |
使当前线程等待直到唤醒,通常是通过 <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) |
基于反射的实用工具,用于对指定类的指定 |