【发布时间】:2010-11-16 16:05:10
【问题描述】:
如何找出谁在 Java 中创建了线程?
想象一下:您在复杂的插件环境中使用了大约 30 个第三方 JAR。你启动它,运行大量代码,进行一些计算,最后调用shutdown()。
这个生命周期通常运行良好,除了在每次运行时一些(非守护进程)线程仍然悬空。如果每次关机都是最后一次关机,这不会有问题,在这种情况下我可以简单地运行 System.exit() 。但是,这个循环可能会运行多次,并且每次通过都会产生更多的垃圾。
那么,我该怎么办?我在 Eclipse 的调试视图中看到了线程。我看到了他们的堆栈跟踪,但他们不包含任何关于其来源的提示。没有创建者的堆栈跟踪,没有可区分的类名,什么都没有。
有人知道如何解决这个问题吗?
【问题讨论】:
-
我想你应该可以在继承的acc字段中看到代码源。
标签: java multithreading eclipse stack-trace