首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检测谁创建了线程(w. Eclipse)

检测谁创建了线程(w. Eclipse)
EN

Stack Overflow用户
提问于 2009-08-04 12:39:21
回答 5查看 4.3K关注 0票数 22

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

假设以下情况:在一个复杂的插件环境中使用~30 第三方JAR。启动它,运行大量的代码,做一些计算,最后调用start ()。

这个生命周期通常可以正常工作,但每次运行时,一些(非守护进程)线程仍然处于悬空状态。如果每次关闭都是最后一次关闭,那么这就没有问题了,在这种情况下,我可以简单地运行System.exit()。然而,这个循环可能会运行几次,而且每次传递都会产生更多的垃圾。

那我该怎么办?我在Eclipse的Debug视图中看到了线程。我看到了它们的堆栈痕迹,但它们没有任何关于它们的起源的暗示。没有创建者的堆栈跟踪,没有可区分的类名,什么都没有。

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

EN

Stack Overflow用户

发布于 2019-12-26 08:06:48

为了进行本地调试,可以尽早将调试器附加到Java应用程序。

的末尾设置一个不挂起的断点,它将计算并记录如下:

代码语言:javascript
运行
复制
"**" + getName() + "**\n" + Arrays.toString(Thread.currentThread().getStackTrace())

这将输出线程名和线程如何创建(堆栈跟踪),您只需扫描即可。

票数 0
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1227275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档