モジュール java.base
パッケージ java.lang

クラスInheritableThreadLocal<T>

java.lang.Object
java.lang.ThreadLocal<T>
java.lang.InheritableThreadLocal<T>

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

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

ノート: 新しいthreadの作成中に、継承可能なスレッド・ローカル変数の初期値を受け取りをopt outすることが可能です。

導入されたバージョン:
1.2
関連項目:
ThreadLocal
  • コンストラクタの詳細

    • InheritableThreadLocal

      public InheritableThreadLocal()
      継承可能なスレッド・ローカル変数を作成します。
  • メソッドの詳細

    • childValue

      protected T childValue​(T parentValue)
      この継承可能なスレッド・ローカル変数の初期値を、子スレッドの作成時に親の値に対する関数として計算します。 このメソッドは、子が開始される前に親スレッドの中から呼び出されます。

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

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