JavaTM 2 Platform
Std. Ed. v1.3

java.lang
クラス InheritableThreadLocal

java.lang.Object
  |
  +--java.lang.ThreadLocal
        |
        +--java.lang.InheritableThreadLocal

public class InheritableThreadLocal
extends ThreadLocal

このクラスは、親スレッドから子スレッドへの値の継承を提供するために、ThreadLocal を拡張します。子スレッドの作成時に、子は親が持つ InheritableThreadLocal の初期値をすべて受け取ります。通常、子の値は親の値と同じです。しかし、このクラスの childValue メソッドをオーバーライドすれば、子の値を親の値に対する任意の関数にすることができます。

変数として保持されるスレッドごとの属性 (ユーザ ID、トランザクション ID など) を、作成されるすべての子スレッドに自動的に転送する必要がある場合には、InheritableThreadLocal 変数が通常の ThreadLocal 変数よりも優先的に使われます。

導入されたバージョン:
1.2
関連項目:
ThreadLocal

コンストラクタの概要
InheritableThreadLocal()
          InheritableThreadLocal 変数を作成します。
 
メソッドの概要
protected  Object childValue(Object parentValue)
          子の InheritableThreadLocal の初期値を、子スレッドの作成時に親の値に対する関数として計算します。
 Object get()
          この ThreadLocal 変数の呼び出し側のスレッドのコピーに値を返します。
 void set(Object value)
          この ThreadLocal 変数の呼び出し側のスレッドのインスタンスを、指定された値に設定します。
 
クラス java.lang.ThreadLocal から継承したメソッド
initialValue
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

InheritableThreadLocal

public InheritableThreadLocal()
InheritableThreadLocal 変数を作成します。
メソッドの詳細

get

public Object get()
この ThreadLocal 変数の呼び出し側のスレッドのコピーに値を返します。スレッドで初めてこのメソッドが呼び出されたときは、コピーが作成されて初期化されます。
オーバーライド:
クラス ThreadLocal 内の get
クラス java.lang.ThreadLocal からコピーされたタグ:
戻り値:
この ThreadLocal の値

set

public void set(Object value)
この ThreadLocal 変数の呼び出し側のスレッドのインスタンスを、指定された値に設定します。このメソッドは、initialValue メソッドによって代入された値を変更する場合にだけ使用されます。多くのアプリケーションではこの機能は必要ありません。
オーバーライド:
クラス ThreadLocal 内の set
パラメータ:
value - この ThreadLocal の呼び出し側のスレッドのコピーに格納される値

childValue

protected Object childValue(Object parentValue)
子の InheritableThreadLocal の初期値を、子スレッドの作成時に親の値に対する関数として計算します。このメソッドは、子が開始される前に親スレッドの中から呼び出されます。

このメソッドは入力引数を返すだけなので、異なる動作が必要な場合にはオーバーライドしてください。

パラメータ:
parentValue - 親のスレッドの値
戻り値:
子のスレッドの初期値

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.