总结:当使用InheritableThreadLocal创建线程变量时,父线程读写线程变量实际是写入父线程的inheritableThreadLocals中 , 在创建子线程时,会将父线程的inheritableThreadLocals复制给子线程的inheritableThreadLocals,子线程操作此线程变量时,也是读写自己线程的inheritableThreadLocals,这就达到了子线程可以获取父线程ThreadLocal的效果 。
# 其他要点
- 如果使用了线程池,线程是会被复用的,因此线程的threadLocals和inheritableThreadLocals也会复用,在线程池使用ThreadLocal可能会产生一些问题,需要留意;- JDK本身提供创建线程池的方法,是不支持获得父级线程的ThreadLocal变量的 。
【ThreadLocal的使用及原理解析】
推荐阅读
- 英雄联盟手游战斗之夜活动入口的位置在什么地方
- 原神3.0新增哪些料理
- 原神妮露培养材料需要哪些
- 皮新字组词|皮的新字和组词
- s7vivo参数_s7vivo参数配置
- 樱桃的拼音正确读音-“樱桃”怎么读?
- 浏览器缓存的视频删了怎么恢复(恢复三年内删除的视频)
- 浏览器怎样清除缓存(清理下浏览器的缓存)
- cf怎样跳高箱子(cf高级箱子是怎么跳的)
- cf怎么跳箱子,五种cf跳箱子的方法(cf交易箱子打开不见了)