JavaTM 2 Platform
Standard Ed. 5.0

java.util.concurrent.atomic
クラス AtomicMarkableReference<V>

java.lang.Object
  上位を拡張 java.util.concurrent.atomic.AtomicMarkableReference<V>
型パラメータ:
V - この参照により参照されるオブジェクトの型

public class AtomicMarkableReference<V>
extends Object

AtomicMarkableReference は、原子的に更新可能なマークビットとともに、オブジェクト参照を管理します。

実装上の注意。この実装は、「箱詰め」された [参照、ブール値] のペアを表す内部オブジェクトを作成することにより、マーク可能な参照を管理します。

導入されたバージョン:
1.5

コンストラクタの概要
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)
          「現在の参照 == 予想される参照」であり、現在のマークが予想されるマークに等しい場合、参照とマークの両方の値を指定された更新値に原子的に設定します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

AtomicMarkableReference

public AtomicMarkableReference(V initialRef,
                               boolean initialMark)
指定された初期値を使って、新しい AtomicMarkableReference を作成します。

パラメータ:
initialRef - 初期参照
initialMark - 初期マーク
メソッドの詳細

getReference

public V 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)
「現在の参照 == 予想される参照」であり、現在のマークが予想されるマークに等しい場合、参照とマークの両方の値を指定された更新値に原子的に設定します。この操作の指定された呼び出しは見かけ上失敗する (false を返す) が、現在値が予想される値を保持し、その値を設定しようとする他のスレッドが存在しない場合、呼び出しが繰り返されることで最終的に成功します。

パラメータ:
expectedReference - 参照の予想される値
newReference - 参照の新しい値
expectedMark - マークの予想される値
newMark - マークの新しい値
戻り値:
成功した場合は true

compareAndSet

public boolean compareAndSet(V expectedReference,
                             V newReference,
                             boolean expectedMark,
                             boolean newMark)
「現在の参照 == 予想される参照」であり、現在のマークが予想されるマークに等しい場合、参照およびマークの値を指定された更新値に原子的に設定します。

パラメータ:
expectedReference - 参照の予想される値
newReference - 参照の新しい値
expectedMark - マークの予想される値
newMark - マークの新しい値
戻り値:
成功した場合は true

set

public void set(V newReference,
                boolean newMark)
参照およびマークの値を無条件に設定します。

パラメータ:
newReference - 参照の新しい値
newMark - マークの新しい値

attemptMark

public boolean attemptMark(V expectedReference,
                           boolean newMark)
「現在の参照 == 予想される参照」である場合は、マークの値を指定された更新値に原子的に設定します。この操作の指定された呼び出しはすべて、見かけ上失敗する (false を返す) 可能性があります。ただし、現在の値が予想される値を保持し、値の設定を試みる他のスレッドが存在しない場合は、呼び出しが繰り返し実行されることで最終的に成功します。

パラメータ:
expectedReference - 参照の予想される値
newMark - マークの新しい値
戻り値:
成功した場合は true

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。