java - 可以获取java应用程序的特定线程的调用堆栈吗?

标签 java jstack

我的java应用程序有超过100个线程,每个线程都在做类似的事情。使用jstack可以打印所有线程的堆栈,但是信息太多,是否可以打印java的特定线程的堆栈?例如只打印java应用程序中id为100的线程。

最佳答案

您可以使用getThreadInfo ThreadMXBean的方法MBean。它允许您传递线程 ID,它将返回 ThreadInfo包含堆栈跟踪、线程状态等的数据类型。

编辑:我还应该补充一点,如果您正在寻找外部的东西,您可以使用 Threads Inspector jVisualVM 的插件。它工作得非常好,允许您选择实时显示堆栈的线程。此外,jVisualVM 是免费的,并且与 JDK 捆绑在一起(例如 JDK_location/bin/)。线程检查器插件也是免费的,可以通过打开 jVisualVM > 工具 > 插件 > 可用插件来安装。

关于java - 可以获取java应用程序的特定线程的调用堆栈吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25050957/

相关文章:

Java 线程 : interpreting thread states of a running JVM

Java XPath : Get all the elements that match a query

java - 我如何修复数组循环中的这个循环,Java Eclipse?

java - 使用 setenv.sh 为项目设置类路径

java - pyCharm调试: JRE without jstack?

Windows 上的 Java 堆栈跟踪

java - jstack 无法在服务器上运行

java - 解释 jstack 输出

java - 传递父类(super class)和子类的参数?

java - 在大文本日志文件中搜索