ThreadLocal的原理

ThreadLocal原理

1ThreadLocal是一个工具类,为每个线程提供自己专属的本地变量

2ThreadLocal底层是通过ThreadLocalMap实现的,每个Thread对象中存在一个ThreadLocalMap,Map的key为ThreadLocal对象 ,Map的value为要缓存的值

ThreadLocal内存泄露问题是怎么产生的?

ThreadLocalMap 中使用的 key 为 ThreadLocal 的弱引用,而 value 是强引用。,在垃圾回收的时候,key 会被清理掉,而 value 不会被清理掉。假如我们不做任何措施的话,value 永远无法被 GC 回收,这个时候就可能会产生内存泄露。使用完 ThreadLocal方法后最好手动调用remove()方法(清除ThreadLocalMap中的带有key为该ThreadLocal对象的Entry)。

ThreadLocal的应用场景

当一个共享变量是共享的,但是需要每个线程互不影响,相互隔离,就可以使用ThreadLocal

相关推荐
一嘴一个橘子1 天前
springMvc 接收参数、cookie、header
java
code_li1 天前
聊聊支付宝架构
java·开发语言·架构
CC.GG1 天前
【Linux】进程概念(五)(虚拟地址空间----建立宏观认知)
java·linux·运维
以太浮标1 天前
华为eNSP模拟器综合实验之- AC+AP无线网络调优与高密场景
java·服务器·华为
Mr__Miss1 天前
JAVA面试-框架篇
java·spring·面试
小马爱打代码1 天前
SpringBoot:封装 starter
java·spring boot·后端
STARSpace88881 天前
SpringBoot 整合个推推送
java·spring boot·后端·消息推送·个推
码农幻想梦1 天前
实验八 获取请求参数及域对象共享数据
java·开发语言·servlet
a努力。1 天前
2026 AI 编程终极套装:Claude Code + Codex + Gemini CLI + Antigravity,四位一体实战指南!
java·开发语言·人工智能·分布式·python·面试
Dylan的码园1 天前
功能包介绍 : calendar
java·jvm·eclipse