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)「現在の参照==予想される参照」であり、現在のマークが予想されるマークに等しい場合、参照およびマークの値を指定された更新値に原子的に設定します。Vget(boolean[] markHolder)参照およびマークの現在値を返します。VgetReference()参照の現在値を返します。booleanisMarked()マークの現在値を返します。voidset(V newReference, boolean newMark)参照およびマークの値を無条件に設定します。booleanweakCompareAndSet(V expectedReference, V newReference, boolean expectedMark, boolean newMark)「現在の参照==予想される参照」であり、現在のマークが予想されるマークに等しい場合、参照およびマークの値を指定された更新値に原子的に設定します。
- 
コンストラクタの詳細- 
AtomicMarkableReferencepublic AtomicMarkableReference(V initialRef, boolean initialMark)指定された初期値を使って、新しいAtomicMarkableReferenceを作成します。- パラメータ:
- initialRef- 初期参照
- initialMark- 初期マーク
 
 
- 
- 
メソッドの詳細- 
getReferencepublic V getReference()参照の現在値を返します。- 戻り値:
- 参照の現在値
 
- 
isMarkedpublic boolean isMarked()マークの現在値を返します。- 戻り値:
- マークの現在値
 
- 
getpublic V get(boolean[] markHolder)参照およびマークの現在値を返します。 通常の使用法はboolean[1] holder; ref = v.get(holder);です。- パラメータ:
- markHolder- 1以上のサイズの配列。 戻ってくると、- markHolder[0]はマークの値を保持します。
- 戻り値:
- 参照の現在値
 
- 
weakCompareAndSetpublic boolean weakCompareAndSet(V expectedReference, V newReference, boolean expectedMark, boolean newMark)「現在の参照==予想される参照」であり、現在のマークが予想されるマークに等しい場合、参照およびマークの値を指定された更新値に原子的に設定します。 この操作は誤って失敗する可能性があり、順序付けの保証は提供されないため、compareAndSetのかわりに適したものになることはほとんどありません。- パラメータ:
- expectedReference- 参照の予想される値
- newReference- 参照の新しい値
- expectedMark- マークの予想される値
- newMark- マークの新しい値
- 戻り値:
- 成功した場合はtrue
 
- 
compareAndSetpublic boolean compareAndSet(V expectedReference, V newReference, boolean expectedMark, boolean newMark)「現在の参照==予想される参照」であり、現在のマークが予想されるマークに等しい場合、参照およびマークの値を指定された更新値に原子的に設定します。- パラメータ:
- expectedReference- 参照の予想される値
- newReference- 参照の新しい値
- expectedMark- マークの予想される値
- newMark- マークの新しい値
- 戻り値:
- 成功した場合はtrue
 
- 
setpublic void set(V newReference, boolean newMark)参照およびマークの値を無条件に設定します。- パラメータ:
- newReference- 参照の新しい値
- newMark- マークの新しい値
 
- 
attemptMarkpublic boolean attemptMark(V expectedReference, boolean newMark)「現在の参照==予想される参照」である場合は、マークの値を指定された更新値に原子的に設定します。 この操作の指定された呼出しはすべて、見かけ上失敗する(falseを返す)可能性があります。ただし、現在の値が予想される値を保持し、値の設定を試みるほかのスレッドが存在しない場合は、呼出しが繰り返されることで最終的に成功します。- パラメータ:
- expectedReference- 参照の予想される値
- newMark- マークの新しい値
- 戻り値:
- 成功した場合はtrue
 
 
-