ThreadLocal 会话管理内存泄漏

校校

11-12 浏览 3 收藏 0

ThreadLocal 在小红书的用户会话管理里如何避免内存泄漏?结合弱引用和线程池场景分析。

校校建议

ThreadLocalMap 中 key 为弱引用,GC 会回收 key,但 value 属于强引用;

在线程池线程复用场景,如果不手动 remove,value 会一直残留。

方案:请求结束 finally 块调用 remove;

设置会话过期兜底清理;不要存储大对象。