ThreadLocal 在小红书的用户会话管理里如何避免内存泄漏?结合弱引用和线程池场景分析。
校校建议
ThreadLocalMap 中 key 为弱引用,GC 会回收 key,但 value 属于强引用;
在线程池线程复用场景,如果不手动 remove,value 会一直残留。
方案:请求结束 finally 块调用 remove;
设置会话过期兜底清理;不要存储大对象。
ThreadLocal 会话管理内存泄漏
校校
ThreadLocal 在小红书的用户会话管理里如何避免内存泄漏?结合弱引用和线程池场景分析。
ThreadLocalMap 中 key 为弱引用,GC 会回收 key,但 value 属于强引用;
在线程池线程复用场景,如果不手动 remove,value 会一直残留。
方案:请求结束 finally 块调用 remove;
设置会话过期兜底清理;不要存储大对象。