gpt4 book ai didi

java - 检测谁创建了线程(使用 Eclipse)

转载 作者:IT老高 更新时间:2023-10-28 20:41:23 25 4
gpt4 key购买 nike

如何找出谁在 Java 中创建了线程?

想象一下:您在复杂的插件环境中使用了大约 30 个第三方 JAR。你启动它,运行大量代码,进行一些计算,最后调用shutdown()。

这个生命周期通常运行良好,除了在每次运行时一些(非守护进程)线程仍然悬空。如果每次关机都是最后一次关机,这不会有问题,在这种情况下我可以简单地运行 System.exit() 。但是,这个循环可能会运行多次,并且每次通过都会产生更多的垃圾。

那么,我该怎么办?我在 Eclipse 的调试 View 中看到了线程。我看到了他们的堆栈跟踪,但他们不包含任何关于其来源的提示。没有创建者的堆栈跟踪,没有可区分的类名,什么都没有。

有人知道如何解决这个问题吗?

最佳答案

好的,我能够自己解决(某种程度上)问题:我在

中设置了一个断点
Thread.start() 

并手动逐步执行每个调用。通过这种方式,我很快发现 Class.forName() 初始化了许多静态代码,这些代码反过来又创建了这些神秘的线程。

虽然我能够解决我的问题,但我仍然认为更一般的任务仍未解决。

关于java - 检测谁创建了线程(使用 Eclipse),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1227275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com