为缩短句子,请定义别名:
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)的映射?