クラスAtomicMarkableReference<V>
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を作成します。 -
メソッドのサマリー
修飾子と型メソッド説明booleanattemptMark(V expectedReference, boolean newMark) 「現在の参照==予想される参照」である場合は、マークの値を指定された更新値に原子的に設定します。booleancompareAndSet(V expectedReference, V newReference, boolean expectedMark, boolean newMark) 「現在の参照==予想される参照」であり、現在のマークが予想されるマークに等しい場合、参照およびマークの値を指定された更新値に原子的に設定します。get(boolean[] markHolder) 参照およびマークの現在値を返します。参照の現在値を返します。booleanisMarked()マークの現在値を返します。void参照およびマークの値を無条件に設定します。booleanweakCompareAndSet(V expectedReference, V newReference, boolean expectedMark, boolean newMark) 「現在の参照==予想される参照」であり、現在のマークが予想されるマークに等しい場合、参照およびマークの値を指定された更新値に原子的に設定します。
-
コンストラクタの詳細
-
AtomicMarkableReference
public AtomicMarkableReference(V initialRef, boolean initialMark) 指定された初期値を使って、新しいAtomicMarkableReferenceを作成します。- パラメータ:
initialRef- 初期参照initialMark- 初期マーク
-
-
メソッドの詳細
-
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
-
set
public void set(V newReference, boolean newMark) 参照およびマークの値を無条件に設定します。- パラメータ:
newReference- 参照の新しい値newMark- マークの新しい値
-
attemptMark
public boolean attemptMark(V expectedReference, boolean newMark) 「現在の参照==予想される参照」である場合は、マークの値を指定された更新値に原子的に設定します。 この操作の指定された呼出しはすべて、見かけ上失敗する(falseを返す)可能性があります。ただし、現在の値が予想される値を保持し、値の設定を試みるほかのスレッドが存在しない場合は、呼出しが繰り返されることで最終的に成功します。- パラメータ:
expectedReference- 参照の予想される値newMark- マークの新しい値- 戻り値:
- 成功した場合は
true
-