JavaTM 2 Platform
Std. Ed. v1.3

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 変数のコピーは、すべてガベージコレクトされます (ほかにこれらのコピーへの参照がある場合を除く)。

導入されたバージョン:
1.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 の通常の実装では、対応するコンストラクタが呼び出され、新しく構築されたオブジェクトが返されます。
戻り値:
この ThreadLocal の初期値

get

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

set

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

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.