Module java.base
Package java.lang

Class 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)必须使用可继承线程本地变量而不是普通线程本地变量。

注意:在创建新的线程时,可以选择不接收可继承线程本地变量的初始值。

自 JDK 版本:
1.2
参见:
  • Constructor Details

    • InheritableThreadLocal

      public InheritableThreadLocal()
      创建一个可继承线程本地变量。
  • Method Details

    • childValue

      protected T childValue(T parentValue)
      根据创建子线程时父线程的值,计算此可继承线程本地变量的子线程初始值。该方法在父线程内部在子线程启动之前调用。

      该方法仅返回其输入参数,并且如果需要不同的行为,则应该进行覆盖。

      参数:
      parentValue - 父线程的值
      返回值:
      子线程的初始值