解释一下ThreadLocalMap的value为什么不是弱引用

  • Post author:
  • Post category:其他


比如现在我们把值A通过set方法放到了Athreadlocal里即

Athreadlocal.set(A)

,那么在当前线程的ThreadLocalMap中就会有一个entry键值对,entry的key是弱引用指向Athreadlocal,entry的value是强引用指向值A。

如果entry的value是



引用指向值A,那么当Athreadlocal还存在其它强引用的时候,Athreadlocal不会被回收;而值A没有其它强引用,此时值A会被回收掉,当我们再通过Athreadlocal的get方法从ThreadLocalMap中获取值得时候就获取不到了,导致了值A丢失。



版权声明:本文为minyunfei6原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。