如何找出谁在 Java 中创建了线程?
想象一下:您在一个复杂的插件环境中使用了大约 30个第三方JAR。你启动它,运行大量代码,进行一些计算,最后调用shutdown()。
这个生命周期通常工作得很好,除了在每次运行时一些(非守护进程)线程仍然悬空。如果每次关机都是最后一次关机,这不会有问题,在这种情况下我可以简单地运行 System.exit() 。但是,这个循环可能会运行多次,并且每次通过都会产生更多的垃圾。
所以我该怎么做?我在 Eclipse 的调试视图中看到了线程。我看到了他们的堆栈跟踪,但他们不包含任何关于其来源的提示。没有创建者的堆栈跟踪,没有可区分的类名,什么都没有。
有谁知道如何解决这个问题?