共用方式為


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 保證比其他不可部分完成類別的弱。 因為這個類別無法確保欄位的所有用法都適用於不可部分完成存取的目的,所以它只能保證與相同更新程式的其他叫 compareAndSet 用和 set 相關的不可部分完成性。

不是傳遞至 #newUpdater 之類別實例之型T別之參數的物件自變數會導致ClassCastException擲回。

已在1.5中新增。

java.util.concurrent.atomic.AtomicReferenceFieldUpdaterJava 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 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 參考欄位進行不可部分完成的更新。

適用於