V
- この参照により参照されるオブジェクトの型public class AtomicMarkableReference<V> extends Object
AtomicMarkableReference
は、原子的に更新可能なマーク・ビットとともに、オブジェクト参照を管理します。
実装にあたっての注意: この実装は、「箱詰め」された[参照、boolean値]のペアを表す内部オブジェクトを作成することにより、マーク可能な参照を管理します。
コンストラクタと説明 |
---|
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)
「現在の参照
== 予想される参照」であり、現在のマークが予想されるマークに等しい場合、参照およびマークの値を指定された更新値に原子的に設定します。 |
public AtomicMarkableReference(V initialRef, boolean initialMark)
AtomicMarkableReference
を作成します。initialRef
- 初期参照initialMark
- 初期マークpublic V getReference()
public boolean isMarked()
public V get(boolean[] markHolder)
boolean[1] holder; ref = v.get(holder);
です。markHolder
- 1以上のサイズの配列。復帰時、markholder[0]
はマークの値を保持する。public boolean weakCompareAndSet(V expectedReference, V newReference, boolean expectedMark, boolean newMark)
==
予想される参照」であり、現在のマークが予想されるマークに等しい場合、参照およびマークの値を指定された更新値に原子的に設定します。
見かけ上失敗する可能性があり、順序付け保証を提供しないため、compareAndSet
の代わりに使用することはほとんどありません。
expectedReference
- 参照の予想される値newReference
- 参照の新しい値expectedMark
- マークの予想される値newMark
- マークの新しい値true
public boolean compareAndSet(V expectedReference, V newReference, boolean expectedMark, boolean newMark)
==
予想される参照」であり、現在のマークが予想されるマークに等しい場合、参照およびマークの値を指定された更新値に原子的に設定します。expectedReference
- 参照の予想される値newReference
- 参照の新しい値expectedMark
- マークの予想される値newMark
- マークの新しい値true
public void set(V newReference, boolean newMark)
newReference
- 参照の新しい値newMark
- マークの新しい値public boolean attemptMark(V expectedReference, boolean newMark)
==
予想される参照」である場合は、マークの値を指定された更新値に原子的に設定します。この操作の指定された呼出しはすべて、見かけ上失敗する(false
を返す)可能性があります。ただし、現在の値が予想される値を保持し、値の設定を試みるほかのスレッドが存在しない場合は、呼出しが繰り返されることで最終的に成功します。expectedReference
- 参照の予想される値newMark
- マークの新しい値true
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.