ThreadLocal

https://www.cnblogs.com/fsmly/p/11020641.html

1.内存泄露问题

ThreadLocal中的ThreadLocalMap的Entry中的key存储的是ThreadLocal的对象的弱引用,当在其他地方不再引用它的是时候会被释放,key会null,但是value不为null,不会被释放。

2.ThreadLocal不支持继承性

ThreadLocal无法将父线程的值传递给子线程,JDK提供了InheritableThreadLocal来解决父子线程变量的值传递问题,当线程初始化的时候会判断父线程InheritableThreadLocal变量是否为空,不空

设置子线程中的inheritableThreadLocals为父线程的inheritableThreadLocals。后续获取变量inheritableThreadLocals获取值。

 

posted on 2022-03-01 23:10  云中哥  阅读(16)  评论(0编辑  收藏  举报

导航