性能问答>ThreadLocal内存泄漏的问题>
4回复

ThreadLocal内存泄漏的问题



最近看了些ThreadLocal内存泄漏的文章,发现ThreadLocal内存泄漏的原因是因为他里面有个ThreadLocalMap中的Entry的Key 是使用WeakReference进行的弱引用,可能会导致GC回收。

那么问题来了,一般我们定义 ThreadLocal 不都是static final 的成员变量进行强引用吗? 那么这个ThreadLocal 永远都不会被GC 回收了,那么是不是不会导致内存泄漏?

2947 阅读
请先登录,再评论

你说的没错,ThreadLocal如果被定义为static final 的成员变量,那它永远不会被gc回收,这种情况下不会导致内存泄漏

1年前

我在这个文章的最后有写这个原因,可以看下 https://blog.csdn.net/qq_35427785/article/details/108545606

1年前

不是ThreadLocal 强不强引用的问题,还是entry key导致的内存泄漏,value回收不了。

1年前

最佳实践就是:在使用完后,显示的调用ThreadLocal的remove方法

1年前