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所引用的对象才能被释放。

相关推荐
Evand J1 天前
【MATLAB程序,一维非线性EKF与RTS】MATLAB,用于一维的位移与速度滤波和RTS平滑/高精度定位,带滤波前后的误差对比
开发语言·matlab·卡尔曼滤波·rts平滑·正向滤波
刘大猫.1 天前
XNMS项目-拓扑图展示
java·人工智能·算法·拓扑·拓扑图·节点树·xnms
火云洞红孩儿1 天前
告别界面孤岛:PyMe如何用一站式流程重塑Python GUI开发?
开发语言·python
正在努力Coding1 天前
SpringAI - 工具调用
java·spring·ai
叫我辉哥e11 天前
新手进阶Python:办公看板集成ERP跨系统同步+自动备份+AI异常复盘
开发语言·人工智能·python
晚风吹长发1 天前
初步了解Linux中的命名管道及简单应用和简单日志
linux·运维·服务器·开发语言·数据结构·c++·算法
C++ 老炮儿的技术栈1 天前
不调用C++/C的字符串库函数,编写函数strcpy
c语言·开发语言·c++·windows·git·postman·visual studio
我尽力学1 天前
面试 总结
java·spring boot·面试
爬台阶的蚂蚁1 天前
Spring AI Alibaba基础概念
java·spring·ai
布局呆星1 天前
闭包与装饰器
开发语言·python