【发布时间】:2020-08-25 08:06:56
【问题描述】:
ThreadLocal 经常被用作类静态字段,比如
public static ThreadLocal<String> userSessionName = new ThreadLocal();
也就是说,userSessionName是一个GC root,即使线程id死了,也永远不会被收集到,直到类被卸载。那么,ThreadLocalMap中的Entry在调用get方法后什么时候会返回null,也就是说ThreadLocalMap.Entry的key什么时候会为null呢?
【问题讨论】:
-
ThreadLocal本身何时被收集的问题与它的密钥或条目何时被收集的问题无关。 -
tks,我想知道在 ThreadLocalMap 中使用弱引用的含义,当它的关键引用一个静态字段并且线程随着应用程序生命周期保持活动时。
标签: java thread-local