ThreadLocal总结

问:ThreadLocal底层的map是线程安全的吗?
不是线程安全的,也不需要为它设置线程安全的锁。ThreadLocal的底层实现map是Thread类的一个属性。既然位于Thread内部,即不需要关注它是不是安全的,因为它是线程私有的属性而已。

问:ThreadLocal会产生内存泄漏吗?
会,原因在于key是弱引用,在触发full gc的时候key会被回收,而value是强引用,无法回收。则map也不会被回收。但是由于key回收的原因,线程无法获取value。则变成了一个存在map也存在value却无法访问的问题。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ThreadLocal是java.lang包里的一个优秀的多线程工具。ThreadLocal为变量在每个线程中都创...
    长特高阅读 306评论 1 1
  • 一 、概述 定义官方定义: This class provides thread-local variables....
    撒法第阅读 208评论 0 0
  • 1 线程封闭 多线程访问共享可变数据时,涉及到线程间数据同步的问题。并不是所有时候,都要用到共享数据,所以线程封闭...
    JavaEdge阅读 1,666评论 0 7
  • 下面我就以面试问答的形式学习我们的——ThreadLocal类(源码分析基于JDK8) 问答内容 1、问:Thre...
    Sophia_dd35阅读 2,094评论 1 36
  • 希望所有人心里都有点逼数,该安静的时候别打扰别人。 要不自己被告几次状了都不知道。 更可能不知道什么时候就被室友捅...
    无端修辞阅读 266评论 0 0