JavaTM 2 Platform
Standard Ed. 6

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

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

public class AtomicStampedReference<V>
extends Object

AtomicStampedReference 維護帶有整數「標誌」的物件參考,可以用原子方式對其進行更新。

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

從以下版本開始:
1.5

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

建構子詳細資訊

AtomicStampedReference

public AtomicStampedReference(V initialRef,
                              int initialStamp)
創建具有給定初始值的新 AtomicStampedReference

參數:
initialRef - 初始參考
initialStamp - 初始標誌
方法詳細資訊

getReference

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

返回:
該參考的當前值

getStamp

public int getStamp()
返回該標誌的當前值。

返回:
該標誌的當前值

get

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

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

weakCompareAndSet

public boolean weakCompareAndSet(V expectedReference,
                                 V newReference,
                                 int expectedStamp,
                                 int newStamp)
如果當前參考 == 預期參考,並且當前標誌等於預期標誌,則以原子方式將該參考和該標誌的值設置為給定的更新值。

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

參數:
expectedReference - 該參考的預期值
newReference - 該參考的新值
expectedStamp - 該標誌的預期值
newStamp - 該標誌的新值
返回:
如果成功,則返回 true

compareAndSet

public boolean compareAndSet(V expectedReference,
                             V newReference,
                             int expectedStamp,
                             int newStamp)
如果當前參考 == 預期參考,並且當前標誌等於預期標誌,則以原子方式將該參考和該標誌的值設置為給定的更新值。

參數:
expectedReference - 該參考的預期值
newReference - 該參考的新值
expectedStamp - 該標誌的預期值
newStamp - 該標誌的新值
返回:
如果成功,則返回 true

set

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

參數:
newReference - 該參考的新值
newStamp - 該標誌的新值

attemptStamp

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

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

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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