для сокращения предложений определите псевдоним:
ThreadLocal: TL
InheritableThreadLocal: ITL
Я читал исходный код TL, и это меня смутило:
почему childValue определяется в TL, а не в ITL?
документ гласит:
ради обеспечения фабричного метода createInheritedMap без необходимости создавать подкласс класса карты в InheritableThreadLocal.
почему не может предоставить createInheritedMap()
в ITL
и позвоните this.inheritableThreadLocals = InheritableThreadLocal.createInheritedMap(parent.inheritableThreadLocals);
в java.lang.Thread#init
?
Я не могу понять, почему нужно подкласс карты, если providing createInheritedMap factory
в ITL.
почему нельзя просто использовать карту родителей (TL) в методе ITL createInheritedMap
?