From f5020958d617c8fc4f6f846064401a9af7748930 Mon Sep 17 00:00:00 2001 From: wenzhuo4657 <14783149521@163.com> Date: Sat, 11 Jan 2025 16:59:26 +0800 Subject: [PATCH] =?UTF-8?q?fix:ThreadLocal=20=E5=86=85=E5=AD=98=E6=B3=84?= =?UTF-8?q?=E9=9C=B2=E9=97=AE=E9=A2=98=E6=98=AF=E6=80=8E=E4=B9=88=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E7=9A=84=EF=BC=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/java/concurrent/java-concurrent-questions-03.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/java/concurrent/java-concurrent-questions-03.md b/docs/java/concurrent/java-concurrent-questions-03.md index d0962dee..99811a85 100644 --- a/docs/java/concurrent/java-concurrent-questions-03.md +++ b/docs/java/concurrent/java-concurrent-questions-03.md @@ -138,6 +138,7 @@ key不同于Map接口的一般实现,使用node将key和value一起 那么此时k存在v就一定存在,但是问题并没有结束,因为会出现k不存在,但是v存在的情况! 这是由于k实际上是类、方法的变量ThreadLocal,如果该变量被回收也就意味着内部的V永远不会被找到,成为了内存泄漏的原因。 + **重点在于key并非是弱引用,只是v作为map的直接引用无法被回收,因此使其成为了弱引用类型,并在set、get方法中做了一系列安全措施。**