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

相关推荐
半旧夜夏1 小时前
【分布式缓存】Redis持久化和集群部署攻略
java·运维·redis·分布式·缓存
短视频矩阵源码定制1 小时前
矩阵系统源码推荐:技术架构与功能完备性深度解析
java·人工智能·矩阵·架构
ysdysyn1 小时前
C# 进程管理实战:检查与启动EXE程序的完整指南
开发语言·c#
Eiceblue1 小时前
使用 Java 将 Excel 工作表转换为 CSV 格式
java·intellij-idea·excel·myeclipse
漂流幻境1 小时前
IntelliJ IDEA的Terminal中执行ping命令时遇到的“No route to host“问题
java·ide·intellij-idea
IDOlaoluo1 小时前
PHP-5.2.1.tar.gz 离线安装教程:从源码编译到配置的详细步骤(附安装包)
开发语言·php
苹果醋32 小时前
element-ui源码阅读-样式
java·运维·spring boot·mysql·nginx
BUG?不,是彩蛋!2 小时前
IntelliJ IDEA从安装到使用:零基础完整指南
java·ide·intellij-idea
程序员阿鹏2 小时前
56.合并区间
java·数据结构·算法·leetcode
SmoothSailingT2 小时前
IDEA实用快捷键
java·ide·intellij-idea