ThreadLocal 内存泄漏

 

TheadLocal 内存泄漏的根源是: 由于ThreadLocalMap的生命周期跟Thread一样长,

如果没有手动删除对应的key就会导致内存泄漏,而不是因为弱引用


(一) ThreadLocalMap的 key 为 ThreadLocal  =》弱引用

 

 

 


 

(二) ThreadLocal正确的使用方法

 

  1 每次使用完ThreadLocal都调用它的remove()方法清除数据

 

  2 将ThreadLocal变量定义成private static , 这样就一直存在ThreadLocal的强引用,也就能保证任何时候

      都能通过ThreadLocal的弱引用访问到Entry的value值,进而清除掉。

 

 

 


 

 

 

 

    偏向  

 

posted @ 2021-03-23 00:01  朝才  阅读(64)  评论(0)    收藏  举报