采用默认new子线程时,inheritThreadLocals=true;若此时父线程inheritableThreadLocals不为空,则将父线程inheritableThreadLocals传递至子线程。
从ThreadLocalMap可知,子线程将parentMap中的所有记录逐一复制至自身线程。
但是线程池不行,因为会复用线程
TransmittableThreadLocal ,线程池异步之前把当前父线程里的本地变量取出来,然后赋值给Rannable包装类里的capturedRef属性。接下来大概率会在run方法里,将这些捕获到的值赋给子线程的holder赋对应的TTL值。达到了线程池中上下文传递。TransmittableThreadLocal 继承自inheritThreadLocals。所以默认的new线程也是可以传递的
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。