- java.lang.Object
-
- java.util.concurrent.atomic.AtomicMarkableReference<V>
-
- 型パラメータ:
V
- この参照により参照されるオブジェクトの型
public class AtomicMarkableReference<V> extends Object
AtomicMarkableReference
は、原子的に更新可能なマーク・ビットとともに、オブジェクト参照を管理します。実装にあたっての注意: この実装は、箱詰めされた[参照、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)
現在の参照==
予想される参照であり、現在のマークが予想されるマークに等しい場合、参照およびマークの値を指定された更新値に原子的に設定します。
-
-
-
コンストラクタの詳細
-
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
-
-