Share via


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.AtomicReferenceFieldUpdater JAVA 檔。

此頁面的部分是根據所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。

建構函式

AtomicReferenceFieldUpdater()

受保護的無作用建構函式可供子類別使用。

AtomicReferenceFieldUpdater(IntPtr, JniHandleOwnership)

建立 JNI 物件的 Managed 標記法時使用的建構函式;由執行時間呼叫。

屬性

Class

傳回這個 Object 的執行時間類別。

(繼承來源 Object)
Handle

基礎 Android 實例的控制碼。

(繼承來源 Object)
JniIdentityHashCode

反映型公用程式,可對指定類別的指定 volatile 參考欄位進行不可部分完成的更新。

(繼承來源 Object)
JniPeerMembers

反映型公用程式,可對指定類別的指定 volatile 參考欄位進行不可部分完成的更新。

PeerReference

反映型公用程式,可對指定類別的指定 volatile 參考欄位進行不可部分完成的更新。

(繼承來源 Object)
ThresholdClass

此 API 支援適用于 Android 的 Mono 基礎結構,並不適合直接從您的程式碼使用。

ThresholdType

此 API 支援適用于 Android 的 Mono 基礎結構,並不適合直接從您的程式碼使用。

方法

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 < notified/em > 或 < em > interrupted < /em > 。 ><

(繼承來源 Object)
Wait(Int64)

讓目前的執行緒等到喚醒為止,通常是 em < notified/em > 或 < em > interrupted < /em > ,或直到經過一定數量的即時為止。 <>

(繼承來源 Object)
Wait(Int64, Int32)

讓目前的執行緒等到喚醒為止,通常是 em < notified/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 參考欄位進行不可部分完成的更新。

適用於