深入分析 ThreadLocal 内存泄漏问题

  1. 云栖社区>
  2. Java技术进阶>
  3. 博客>
  4. 正文

深入分析 ThreadLocal 内存泄漏问题

肖汉松 2019-02-01 21:00:00 浏览2079
展开阅读全文

前言

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

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

ThreadLocal 实现原理

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

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

网友评论

登录后评论
0/500
评论
肖汉松
+ 关注
所属云栖号: Java技术进阶