Java プラットフォーム 1.2

java.lang
クラス ThreadLocal

java.lang.Object
  |
  +--java.lang.ThreadLocal
直接の既知のサブクラス:
InheritableThreadLocal

public class ThreadLocal
extends Object

このクラスは ThreadLocal 変数を提供します。これらの変数は、get メソッドまたは set メソッドを使ってアクセスするスレッドがそれぞれ独自に、変数の初期化されたコピーを持つという点で、通常の変数と異なります。通常、ThreadLocal オブジェクトは、状態をスレッドに関連付けようとするクラスでの private static 変数です (ユーザ ID、トランザクション ID など)。

各スレッドは 、スレッドが生存していて ThreadLocal オブジェクトがアクセス可能である間は ThreadLocal のコピーへの暗黙的な参照を保持します。スレッドが終了すると、スレッドの ThreadLocal 変数のコピーは、すべてガベージコレクトされます (ほかにこれらのコピーへの参照がある場合を除く)。

導入されたバージョン:
JDK1.2

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

コンストラクタの詳細

ThreadLocal

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

initialValue

protected Object initialValue()
この ThreadLocal 変数に対する呼び出し側のスレッドの初期値を返します。このメソッドは、各スレッドが get または set を使って初めて ThreadLocal 変数にアクセスしたときに、各 ThreadLocal について呼び出し側のスレッドで 1 回呼び出されます。ThreadLocal 変数を null 以外の値に初期化する必要がある場合は、ThreadLocal をサブクラス化してこのメソッドをオーバーライドしてください。通常は、匿名の内部クラスが使用されます。initialValue の通常の実装では、対応するコンストラクタが呼び出され、新しく構築されたオブジェクトが返されます。

get

public Object get()
この ThreadLocal 変数の呼び出し側のスレッドのコピーに値を返します。スレッドで初めてこのメソッドが呼び出されたときは、コピーが作成されて初期化されます。

set

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

Java プラットフォーム 1.2

バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.