深入分析 ThreadLocal 内存泄漏问题

肖汉松 2019-02-01

Java核心技术 线程 内存泄漏 thread 存储

前言

ThreadLocal 的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度。但是如果滥用 ThreadLocal,就可能会导致内存泄漏。下面,我们将围绕三个方面来分析 ThreadLocal 内存泄漏的问题

  • ThreadLocal 实现原理
  • ThreadLocal为什么会内存泄漏
  • ThreadLocal 最佳实践

ThreadLocal 实现原理

ThreadLocal的实现是这样的:每个Thread 维护一个 ThreadLocalMap 映射表,这个映射表的 keyThreadLocal 实例本身,value 是真正需要存储的 Object

也就是说 ThreadLocal 本身并不存储值,它只是作为一个 key 来让线程从 ThreadLocalMa

登录 后评论
下一篇
我是小助手
32160人浏览
2019-07-31
相关推荐
深入剖析ThreadLocal
471人浏览
2017-08-02 21:45:00
深入剖析ThreadLocal
706人浏览
2017-07-03 14:07:00
Java并发编程之美
2825人浏览
2018-09-30 15:56:24
java源码-ThreadLocal
307人浏览
2018-08-11 22:53:00
0
6
1
2068