クラスInheritableThreadLocal<T>

java.lang.Object
java.lang.ThreadLocal<T>
java.lang.InheritableThreadLocal<T>
型パラメータ:
T - 継承可能スレッドのローカル値のタイプ

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

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

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

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

    コンストラクタ
    コンストラクタ
    説明
    継承可能なスレッド・ローカル変数を作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    protected T
    childValue(T parentValue)
    この継承可能なスレッド・ローカル変数の初期値を、子スレッドの作成時に親の値に対する関数として計算します。

    クラスで宣言されたメソッド ThreadLocal

    get, initialValue, remove, set, withInitial
    修飾子と型
    メソッド
    説明
    get()
    このスレッド・ローカル変数の現行スレッドのコピー内の値を返します。
    protected T
    このスレッド・ローカル変数に対する現在のスレッドの「初期値」を返します。
    void
    このスレッド・ローカル変数に対する現在のスレッドの値を削除します。
    void
    set(T value)
    このスレッド・ローカル変数の現在のスレッドのコピーを指定された値に設定します。
    static <S> ThreadLocal<S>
    withInitial(Supplier<? extends S> supplier)
    スレッド・ローカル変数を作成します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • InheritableThreadLocal

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

    • childValue

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

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

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