我希望将当前在Java进程中运行的所有线程的所有堆栈跟踪打印到stdout,以调试我的服务器的死锁。
发布于 2020-06-17 15:41:06
这里是代码,你可以复制和粘贴函数体,并使用它,而不需要任何导入。
class HelloWorld {
public static void main(String[] args) {
java.util.Collection<java.lang.StackTraceElement[]> a1 = java.lang.Thread.getAllStackTraces().values();
for (java.lang.StackTraceElement[] a2 : a1){
System.out.println("==========");
for (java.lang.StackTraceElement a3 : a2){
System.out.println(a3.toString());
}
}
}
}上面的代码已经过测试:
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-8u252-b09-1~18.04-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)https://stackoverflow.com/questions/62423860
复制相似问题