JavaTM 2 Platform
Standard Ed. 6

java.util.concurrent.atomic
類別 AtomicMarkableReference<V>

java.lang.Object
  繼承者 java.util.concurrent.atomic.AtomicMarkableReference<V>
型別參數:
V - 此參考所參考的物件型別

public class AtomicMarkableReference<V>
extends Object

AtomicMarkableReference 維護帶有標記位的物件參考,可以原子方式對其進行更新。

實作注意事項。通過創建表示「已裝箱」的 [reference, boolean] 對的內部物件,此實作維持可標記的參考。

從以下版本開始:
1.5

建構子摘要
AtomicMarkableReference(V initialRef, boolean initialMark)
          創建具有給定初始值的新 AtomicMarkableReference
 
方法摘要
 boolean attemptMark(V expectedReference, boolean newMark)
          如果當前參考 == 預期參考,則以原子方式將該標記的值設置為給定的更新值。
 boolean compareAndSet(V expectedReference, V newReference, boolean expectedMark, boolean newMark)
          如果當前參考 == 預期參考,並且當前標記等於預期標記,那麼以原子方式將參考和標記的值設置為給定的更新值。
 V get(boolean[] markHolder)
          返回該參考和該標記的當前值。
 V getReference()
          返回該參考的當前值。
 boolean isMarked()
          返回該標記的當前值。
 void set(V newReference, boolean newMark)
          無條件地同時設置該參考和標記的值。
 boolean weakCompareAndSet(V expectedReference, V newReference, boolean expectedMark, boolean newMark)
          如果當前參考 == 預期參考,並且當前標記等於預期標記,那麼以原子方式將參考和標記的值設置為給定的更新值。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

AtomicMarkableReference

public AtomicMarkableReference(V initialRef,
                               boolean initialMark)
創建具有給定初始值的新 AtomicMarkableReference

參數:
initialRef - 初始參考
initialMark - 初始標記
方法詳細資訊

getReference

public V getReference()
返回該參考的當前值。

返回:
該參考的當前值

isMarked

public boolean isMarked()
返回該標記的當前值。

返回:
該標記的當前值

get

public V get(boolean[] markHolder)
返回該參考和該標記的當前值。典型的用法為 boolean[1] holder; ref = v.get(holder);

參數:
markHolder - 大小至少為 1 的陣列。返回時,markholder[0] 將保存該標記的值。
返回:
該參考的當前值

weakCompareAndSet

public boolean weakCompareAndSet(V expectedReference,
                                 V newReference,
                                 boolean expectedMark,
                                 boolean newMark)
如果當前參考 == 預期參考,並且當前標記等於預期標記,那麼以原子方式將參考和標記的值設置為給定的更新值。

可能意外失敗並且不提供排序保證,所以只有在很少的情況下才對 compareAndSet 進行適當地選擇。

參數:
expectedReference - 該參考的預期值
newReference - 該參考的新值
expectedMark - 該標記的預期值
newMark - 該標記的新值
返回:
如果成功,則返回 true

compareAndSet

public boolean compareAndSet(V expectedReference,
                             V newReference,
                             boolean expectedMark,
                             boolean newMark)
如果當前參考 == 預期參考,並且當前標記等於預期標記,那麼以原子方式將參考和標記的值設置為給定的更新值。

參數:
expectedReference - 該參考的預期值
newReference - 該參考的新值
expectedMark - 該標記的預期值
newMark - 該標記的新值
返回:
如果成功,則返回 true

set

public void set(V newReference,
                boolean newMark)
無條件地同時設置該參考和標記的值。

參數:
newReference - 該參考的新值
newMark - 該標記的新值

attemptMark

public boolean attemptMark(V expectedReference,
                           boolean newMark)
如果當前參考 == 預期參考,則以原子方式將該標記的值設置為給定的更新值。此操作的任何給定調用都可能會意外失敗(返回 false),但是在當前值保持預期值而且沒有其他執行緒也在嘗試設置該值時,重複調用將最終獲得成功。

參數:
expectedReference - 該參考的預期值
newMark - 該標記的新值
返回:
如果成功,則返回 true

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only