ThreadLocal内存泄漏

引用 https://www.jianshu.com/p/ee8c9dccc953

一、内存回收机制

当不存在Stack(栈,也就是未结束函数)到Heap的强引用时,会被GC机制回收

二、ThreadLocal

当Stack中的ThreadLocal ref置为null时,因为TreadLocal只剩下弱引用,Heap中的ThreadLocal可以被回收;但是只要线程还存在,其ThreadLocal Map就存在相应的强引用,因此Entry中的Value不能被回收。

具体为一个线程有多个ThreadLocal-Value,其中一些ThreadLocal不使用了(相当于置为null),但是因为线程还未退出,Value仍未被清理。

因此ThreadLocal便有额外的清理机制,对key为null的Map进行判断,将其Value置为null,这样Value所引用的对象才能被释放。

相关推荐
不甘先生14 小时前
Go context 实战指南:从入门到生产级并发控制(架构师避坑手册)
开发语言·后端·golang
AI进化营-智能译站14 小时前
ROS2 C++开发系列18-STL容器实战:deque缓存激光雷达数据|priority_queue调度任务
开发语言·c++·缓存·ai
Lyyaoo.14 小时前
【JAVA Spring面经】Spring 事务失效情况
java·数据库·spring
初心未改HD14 小时前
Go 泛型完全指南:从入门到实战
开发语言·golang
salipopl14 小时前
Spring Boot 整合 Druid 并开启监控
java·spring boot·后端
西红柿炒番茄3114 小时前
【Python】一个自动切换壁纸的python程序
开发语言·python
ShiJiuD66688899914 小时前
JSP Cookie和Session
java·开发语言
geNE GENT14 小时前
Spring Boot 实战篇(四):实现用户登录与注册功能
java·spring boot·后端
FQNmxDG4S1 天前
Java多线程编程:Thread与Runnable的并发控制
java·开发语言
前端老石人1 天前
HTML 字符引用完全指南
开发语言·前端·html