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, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。