gpt4 book ai didi

java - Glassfish 中的 ThreadLocal 内存泄漏

转载 作者:行者123 更新时间:2023-11-30 11:50:34 24 4
gpt4 key购买 nike

ThreadLocal 是否会像在 Tomcat 中一样在 Glassfish 服务器中导致内存泄漏?为什么? http://wiki.apache.org/tomcat/MemoryLeakProtection

最佳答案

是的,根据这个相对较新的 Glassfish JIRA 问题,它会泄漏并且 Glassfish 甚至不会警告您:

http://java.net/jira/browse/GLASSFISH-14128

但需要说明的是,ThreadLocal 特定泄漏并不是应用程序/网络服务器本身的“错误”,而是在这些容器中运行的组件中的代码问题(无论这些组件是 servlet、 session bean 还是随便)。

应用服务器/Web 容器通常试图做的是避免开发人员编写大量维护代码,并让他专注于业务逻辑。然而,他需要对应用程序服务器的工作方式(线程池、类加载器、部署/取消部署机制等)有一些了解,以便正确完成或避免像 ThreadLocal 问题这样的事情。这并不总是那么容易,而且可能非常棘手。我记得读过有关 Glassfish 中的内存泄漏问题的文章?与自定义日志级别的使用相关。

Apache Tomcat 所做的是它有一个辅助机制来警告用户/处理用户代码中一些常见的内存泄漏问题。但即使在问题中提供的链接中,您也可能会读到并非所有可能的 ThreadLocal 内存泄漏都是使用此机制自动完成的。

Glassfish 似乎还没有这个附加功能。

关于java - Glassfish 中的 ThreadLocal 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7916128/

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