gpt4 book ai didi

java - 线程池中的线程局部内存泄漏

转载 作者:搜寻专家 更新时间:2023-11-01 01:45:59 25 4
gpt4 key购买 nike

我在 Tomcat 中遇到线程局部内存泄漏错误,我正在使用 ThreadPool,但我的 Web 应用程序中没有 ThreadLocal 的实现。

SEVERE: The web application [/myWebApp] created a ThreadLocal with key of type [org.a pache.http.impl.cookie.DateUtils$DateFormatHolder$1] (value [org.apache.http.imp l.cookie.DateUtils$DateFormatHolder$1@4c2849]) and a value of type [java.lang.re f.SoftReference] (value [java.lang.ref.SoftReference@1e67280]) but failed to rem ove it when the web application was stopped. Threads are going to be renewed ove r time to try and avoid a probable memory leak.

我不明白的是为什么我没有实现线程局部错误?我想摆脱这些消息,所以我搜索了网络,并在 here据记载,为了清理我需要使用的 threadlocal:

ThreadLocal.remove()

但我没有 ThreadLocal 的实现。如果有人告诉我方法,我将不胜感激。

最佳答案

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

我会先看看什么可能会创建

的实例
    org.apache.http.impl.cookie.DateUtils$DateFormatHolder$1

(这是 DataUtils 中嵌套类中的匿名类,顺便说一下......所以除非发生奇怪的事情,否则创建将发生在 DateUtils.java 文件。)

如果检查源代码没有帮助,请尝试调试 Tomcat 实例并在 ThreadLocal 构造函数上设置断点。

关于java - 线程池中的线程局部内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10415113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com