为什么在ThreadLocal中而不是在InheritableThreadLocal中定义childValue()?

时间:2019-01-09 06:58:41

标签: java architecture thread-local

为缩短句子,请定义别名:

ThreadLocal: TL
InheritableThreadLocal: ITL

我正在阅读TL的源代码,这使我感到困惑: 为什么在TL中而不是在ITL中定义childValue?

文档说:

  

为了提供createInheritedMap工厂方法而无需在InheritableThreadLocal中子类化地图类。

为什么不能在ITL中提供createInheritedMap()
并在this.inheritableThreadLocals = InheritableThreadLocal.createInheritedMap(parent.inheritableThreadLocals);中调用java.lang.Thread#init

我无法弄清楚如果在ITL中使用providing createInheritedMap factory,为什么需要对地图进行子类化。

为什么不能仅在ITL的createInheritedMap方法中使用父级(TL)的映射?

0 个答案:

没有答案