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

相关推荐
AI科技摆渡2 分钟前
GPT-5.2介绍+ 三步对接教程
android·java·gpt
猿与禅9 分钟前
Spring Boot 4.0 完整核心特性及实践指南
java·spring boot·后端·spring·重大升级·springboot4.0
运维@小兵23 分钟前
Spring-AI系列——Tool Calling获取当前时间
java·后端·spring
认真敲代码的小火龙25 分钟前
【JAVA项目】基于JAVA的养老院管理系统
java·开发语言·课程设计
he___H26 分钟前
滑动窗口一题
java·数据结构·算法·滑动窗口
扶苏-su27 分钟前
Java---事件处理机制
java·开发语言
雨中飘荡的记忆28 分钟前
Hutool工具库实战
java
镜花水月linyi37 分钟前
Java 线程创建的完整链路:从 Java 层 → JVM 层 → 操作系统层
java·后端·面试
zfj32143 分钟前
排查java应用内存溢出的工具和方法
java·开发语言·jvm·内存溢出
历程里程碑1 小时前
C++ 7vector:动态数组的终极指南
java·c语言·开发语言·数据结构·c++·算法