性能问答>Java线程实例不被GC从而GC掉threadLocals?>
1回复

Java线程实例不被GC从而GC掉threadLocals?



可是当线程TERMINATED后,对应线程的实例不被GC吗?(当然,此处不考虑线程池那种一个线程复用的情况。)

网上的资料广泛地说ThreadLocal使用弱引用避免内存泄漏。

线程对应的实例如果被GC了,那么实例内部的成员变量所保持的强引用不复存在,进而成员变量threadLocals指向的堆上的映射表被GC,于是映射表内部对每个键值对中键,值的强引用不复存在,下一次GC不就会把堆上的键和值都GC了么?这样不使用弱引用不也没有造成内存泄漏么?

2965 阅读
请先登录,查看1条精彩评论吧
快去登录吧,你将获得
  • 浏览更多精彩评论
  • 和开发者讨论交流,共同进步