并发编程之 ThreadLocal( 四 )


另外在阿里巴巴 Java 开发手册也明确指出,应该显式地调用 remove 方法,删除 Entry 对象,避免内存泄漏 。

【强制】 必须回收自定义的 ThreadLocal 变量,尤其在线程池场景下,线程经常会被复用,如果不清理自定义的 ThreadLocal 变量,可能会影响到后续业务逻辑和造成内存泄漏等问题 。尽量在代码中使用 try-finally 块进行回收 。
objThreadLocal.set(someObject);try{ ...} finally { objThreadLocal.remove();}

经验总结扩展阅读