我一直在阅读这篇文章:
由于我自己在线程方面存在问题,所以:
这是否意味着Java中长时间运行的线程会造成内存泄漏? 如果我首先需要一个长时间运行的线程怎么办。 大多数应用程序不是长时间运行的线程吗?
答案 0 :(得分:3)
长时间运行的线程不会造成内存泄漏。这就是您在其中所做的事情。从技术上讲,当垃圾收集器无法收集可用空间时会发生内存泄漏,因为该空间被标记为已使用。即是否保留引用。
现在,在运行时间较长的线程中,您可以在该线程的生存期内提供一个对象引用。该对象本身可能很昂贵。您共享的first link中就是这种情况(threadlocal可传递地保存所有引用)
在您的second link上,问题似乎出在某个地方。如果怀疑内存泄漏,我通常会怎么做
重复多次,您会注意到一些应该清除的对象。这会给你一些想法。遵循代码中的这些引用,您可以有所了解。