线程池中的线程本地内存泄漏

问题描述

显然, 事情 是创建/那些ThreadLocal的实例。如果不是您的代码,则它必须是您正在使用的某个库,或者(可能是)Tomcat本身。

我将从研究可能正在创建的实例开始

    org.apache.http.impl.cookie.DateUtils$DateFormatHolder$1

DataUtils顺便说一下,这是嵌套类中的一个匿名类,因此,除非发生怪异的事情,否则创建将在DateUtils.java文件中进行。)

如果检查源代码无济于事,请尝试调试Tomcat实例并在ThreadLocal构造函数上设置断点。

解决方法

我在Tomcat中遇到线程本地内存泄漏错误,并且正在使用ThreadPool,但在我的webapp中没有ThreadLocal的实现。

严重:Web应用程序[/ myWebApp]创建了一个ThreadLocal,其密钥类型为[org.a
pache.http.impl.cookie.DateUtils $ DateFormatHolder $
1](值[org.apache.http.imp l.cookie.DateUtils $ DateFormatHolder $ 1 @
4c2849]和类型[java.lang.re
f.SoftReference]的值(值[java.lang.ref.SoftReference@1e67280]),但是在Web应用程序停止时无法删除它。线程将不断更新,以尝试避免可能的内存泄漏。

我不明白的是,为什么我没有实现它,但仍收到线程局部错误?我想,所以我在网上搜索,摆脱这些消息,并在这里它被写入,为了清理ThreadLocal的我需要使用:

ThreadLocal.remove()

但是我没有ThreadLocal的实现。如果有人向我展示一种方法,我将不胜感激。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...