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 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
屬性
Class |
傳回這個 |
Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
JniIdentityHashCode |
反映型公用程式,可對指定類別的指定 |
JniPeerMembers |
反映型公用程式,可對指定類別的指定 |
PeerReference |
反映型公用程式,可對指定類別的指定 |
ThresholdClass |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
方法
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 <notified/em>或<em>interrupted</em> 來喚醒它。<> (繼承來源 Object) |
Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
Wait(Int64) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</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) |
反映型公用程式,可對指定類別的指定 |