我的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/