1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-16 18:10:13 +08:00

fix:ThreadLocal 内存泄露问题是怎么导致的?

This commit is contained in:
wenzhuo4657 2025-01-11 16:59:26 +08:00
parent 661226ab4e
commit f5020958d6

View File

@ -138,6 +138,7 @@ key不同于Map<K,V>接口的一般实现使用node<k,V>将key和value一起
那么此时k存在v就一定存在但是问题并没有结束因为会出现k不存在但是v存在的情况
这是由于k实际上是类、方法的变量ThreadLocal,如果该变量被回收也就意味着内部的V永远不会被找到成为了内存泄漏的原因。
**重点在于key并非是弱引用只是v作为map的直接引用无法被回收因此使其成为了弱引用类型并在set、get方法中做了一系列安全措施。**