java.lang.Object
java.lang.ThreadLocal<T>
java.lang.InheritableThreadLocal<T>
- 类型参数:
-
T
- 可继承线程本地值的类型
该类扩展了
ThreadLocal
类,以实现从父线程到子线程的值继承:当创建子线程时,子线程会接收父线程具有值的所有可继承线程本地变量的初始值。通常情况下,子线程的值将与父线程的值相同;然而,通过覆盖该类中的childValue
方法,可以使子线程的值成为父线程值的任意函数。
在需要自动传输到创建的任何子线程的每个线程属性(例如用户ID、事务ID)必须使用可继承线程本地变量而不是普通线程本地变量。
注意:在创建新的线程
时,可以选择不接收可继承线程本地变量的初始值。
- 自 JDK 版本:
- 1.2
- 参见:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected T
childValue
(T parentValue) 根据创建子线程时父线程的值,计算此可继承线程本地变量的子线程初始值。Methods declared in class java.lang.ThreadLocal
get, initialValue, remove, set, withInitial
-
Constructor Details
-
InheritableThreadLocal
public InheritableThreadLocal()创建一个可继承线程本地变量。
-
-
Method Details
-
childValue
根据创建子线程时父线程的值,计算此可继承线程本地变量的子线程初始值。该方法在父线程内部在子线程启动之前调用。该方法仅返回其输入参数,并且如果需要不同的行为,则应该进行覆盖。
- 参数:
-
parentValue
- 父线程的值 - 返回值:
- 子线程的初始值
-