如何查看一个Java普通程序中的线程都有哪些?
通过 JMX 获取线程信息,示例程序如下:
public class MultiThread {
public static void main(String[] args) {
ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
ThreadInfo[] threadInfos = threadMXBean.dumpAllThreads(false, false);// dump 导出,转存
for (ThreadInfo threadInfo : threadInfos) {
System.out.println(threadInfo.getThreadId() + " " + threadInfo.getThreadName());
}
}
}
输出
6 Monitor Ctrl-Break // IDEA run 启动时特有的线程
5 Attach Listener // 事件监听 线程
4 Signal Dispatcher // 分发处理给 JVM 信号的线程
3 Finalizer // finalize 方法的线程
2 Reference Handler // 处理 reference 线程
1 main // 程序入口 主线程