如果应用程序在其代码的不同位置(包括从引用的 jars 中)启动许多线程(使用new Thread()
和使用ExecutorService
),那么识别启动任何特定线程的源代码的最佳方法是什么(如在执行中所见)应用程序实例)
这很有帮助,例如,如果一个线程导致Exception
- 并且我们需要从初始化线程的源代码开始(以便上下文清晰)。我从 VisualVM 获得的线程转储显示了许多正在运行/等待的线程但堆栈根似乎总是at java.lang.Thread.run(Thread.java:722)
- 不是很有帮助。`