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