JavaTM Platform
Standard Ed. 6

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

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

public class AtomicStampedReference<V>
extends Object

AtomicStampedReference は、原子的に更新可能な整数「スタンプ」とともに、オブジェクト参照を管理します。

実装上の注意。この実装は、括弧で囲まれた [参照、整数] のペアを表す内部オブジェクトを作成することにより、スタンプされた参照を維持します。

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

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

コンストラクタの詳細

AtomicStampedReference

public AtomicStampedReference(V initialRef,
                              int initialStamp)
指定された初期パラメータを使って、新しい AtomicStampedReference を作成します。

パラメータ:
initialRef - 初期参照
initialStamp - 初期スタンプ
メソッドの詳細

getReference

public V getReference()
参照の現在値を返します。

戻り値:
参照の現在値

getStamp

public int getStamp()
スタンプの現在値を返します。

戻り値:
スタンプの現在値

get

public V get(int[] stampHolder)
参照およびスタンプの現在値を返します。通常の使用法は int[1] holder; ref = v.get(holder); です。

パラメータ:
stampHolder - 1 以上のサイズの配列。返す際に、stampholder[0] はスタンプの値を保持する
戻り値:
参照の現在値

weakCompareAndSet

public boolean weakCompareAndSet(V expectedReference,
                                 V newReference,
                                 int expectedStamp,
                                 int newStamp)
「現在の参照 == 予想される参照」であり、現在のスタンプが予想されるスタンプに等しい場合、参照およびスタンプの値を指定された更新値に原子的に設定します。

見かけ上失敗する可能性があり、順序付け保証を提供しないため、compareAndSet の代わりに使用することはほとんどありません。

パラメータ:
expectedReference - 参照の予想される値
newReference - 参照の新しい値
expectedStamp - スタンプの予想される値
newStamp - スタンプの新しい値
戻り値:
成功した場合は true

compareAndSet

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

パラメータ:
expectedReference - 参照の予想される値
newReference - 参照の新しい値
expectedStamp - スタンプの予想される値
newStamp - スタンプの新しい値
戻り値:
成功した場合は true

set

public void set(V newReference,
                int newStamp)
参照およびスタンプの値を無条件に設定します。

パラメータ:
newReference - 参照の新しい値
newStamp - スタンプの新しい値

attemptStamp

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

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

JavaTM Platform
Standard Ed. 6

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

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