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
呼び出しに関してのみアトミック性を保証できます。
渡される#newUpdater
クラスのインスタンスではない型T
のパラメーターのオブジェクト引数は、 がスローされますClassCastException
。
1\.5 で追加されました。
の java.util.concurrent.atomic.AtomicReferenceFieldUpdater
Java ドキュメント。
このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。
コンストラクター
AtomicReferenceFieldUpdater() |
サブクラスで使用するための保護された do-nothing コンストラクター。 |
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() |
このオブジェクトのモニターで待機している 1 つのスレッドを起動します。 (継承元 Object) |
NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドを起動します。 (継承元 Object) |
Set(Object, Object) |
このアップデーターによって管理される特定のオブジェクトのフィールドを、指定された更新された値に設定します。 |
SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
ToArray<T>() |
指定されたクラスの指定された |
ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
UnregisterFromRuntime() |
指定されたクラスの指定された |
UpdateAndGet(Object, IUnaryOperator) |
このアップデーターによって |
Wait() |
現在のスレッドが起動するまで待機します。通常<は、通知</em> または>< em 中断</em によって待機します>。> (継承元 Object) |
Wait(Int64) |
現在のスレッドが起動するまで待機します。通常<は、通知></em> または <>em 中断</em>、または特定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Wait(Int64, Int32) |
現在のスレッドが起動するまで待機します。通常<は、通知></em> または <>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) |
指定されたクラスの指定された |