gpt4 book ai didi

Java Long Running Thread导致内存泄漏?

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

我一直在阅读这篇文章:

因为我自己对线程有问题:

这是否意味着 Java 中长时间运行的线程会造成内存泄漏?如果我首先需要一个长时间运行的线程怎么办?大多数应用程序不也是长时间运行的线程吗?

最佳答案

长时间运行的线程不会造成内存泄漏。这就是你在里面所做的。从技术上讲,内存泄漏发生在垃圾收集器无法收集可用空间时,因为该空间被标记为已使用。即是否持有引用文献。

现在在一个长时间运行的线程中,您可以在线程的生命周期内拥有一个对象引用。这个对象本身可能很昂贵。 first link就是这种情况你共享(threadlocal 传递所有引用)

在你的second link ,问题似乎出在某个地方。如果我怀疑内存泄漏,我通常会做什么

  1. 使用 jmap 获取每个类实例的数量
  2. 强制完全 GC
  3. 再次计算每个类的实例,这些是 GC 无法清除的对象

重复多次,你会注意到一些对象,这些对象应该已经被清除了。这会给你一些想法。按照代码中的这些引用,您可以得到一些想法。

关于Java Long Running Thread导致内存泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53733620/

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