【发布时间】:2012-05-20 07:52:24
【问题描述】:
我正在开发一个存在线程问题的 Java 应用程序。
在使用附加了 Netbeans 分析器的应用程序一段时间后,我可以看到创建了几个线程。他们中的大多数以.5 seconds 结尾。我只能找到应用程序中使用的 SwingWorkers。
此外,分析器显示的大多数线程都是普通线程,而不是 SwingWorkers。除非这些线程是由 SwingWorker 间接创建的,否则我怀疑应用程序使用的某个库正在创建它们。
现在我想删除这个问题。但是我找不到确定线程创建来源的方法。如果可以请建议一些其他分析器/工具,我可以通过它们找到线程创建的来源(方法)。
【问题讨论】:
-
您是否考虑过在线程的构造函数中获取[当前堆栈跟踪][1]? [1]:stackoverflow.com/questions/1069066/…
-
@OldCurmudgeon 我只看到分析器结果中的线程,我不知道线程是在何时何地创建的。因此,我认为我现在不能使用它。但是,一旦我使用了下面列出的分析器,如果需要,我可能会在某些本地化情况下使用它。感谢您的链接
-
JDK Flight Recorder(以前称为 Java Flight Recorder,自 Java 11 起作为 OpenJDK 的一部分免费提供)应该能够捕获堆栈跟踪线程创建。
标签: java multithreading profiling