page contents
发现
问答
发起
提问
文章
文章
更多
专家
讲堂
话题
财富榜
商城
Toggle navigation
问答
文章
精品课
商城
冒泡
搜索
我要提问
立即登录
免费注册
首页
问答
正文
ThreadLocal 造成内存泄漏的原因?
小柒
发布于 2022-10-22 13:49
阅读 666
收藏 0
答案
1
分类:
高并发架构
高并发
编程论坛
默认排序
时间排序
4347
王昭君
2022-10-22 14:17
ThreadLocalMap
中使用的
key
为
ThreadLocal
的弱引用
,
而
value
是强引
用。所以,如果
ThreadLocal
没有被外部强引用的情况下,在垃圾回收的
时候,
key
会被清理掉,而
value
不会被清理掉。这样一来,
ThreadLocalMap
中就会出现
key
为
null
的
Entry
。假如我们不做任何措施
的话,
value
永远无法被
GC
回收,这个时候就可能会产生内存泄
露。
ThreadLocalMap
实现中已经考虑了这种情况,在调用
set()
、
get()
、
remove()
方法的时候,会清理掉
key
为
null
的记录。使用
完
ThreadLocal
方法后 最好手动调用
remove()
方法
评论 (
0
)
请先
登录
后评论
您需要登录后才可以回答问题,
登录
或者
注册
关注
1
关注
小柒
提出于 2022-10-22 13:49
全部
小柒 的其他提问
类似问题
运行时异常与一般异常有何异同?
1 回答
666 阅读
String 和StringBuffer的区别?
2 回答
666 阅读
怎样将字符串中第一个字母大写?
3 回答
666 阅读
在Python中如何生成一个随机数?
1 回答
666 阅读
Python中的不可变集合(frozenset)是什么?
1 回答
666 阅读
在Python中怎样获取输入?
1 回答
666 阅读
×
发送私信
发给:
内容:
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因: