如何检查Java中当前运行的线程数?

2022-09-03 17:13:21

我正在寻找一种方法来查看当前正在运行的线程数

  1. 首先通过窗口
  2. 编程

答案 1

这将为你提供 VM 中的线程总数:

int nbThreads =  Thread.getAllStackTraces().keySet().size();

现在,如果您希望当前正在执行所有线程,则可以执行此操作:

int nbRunning = 0;
for (Thread t : Thread.getAllStackTraces().keySet()) {
    if (t.getState()==Thread.State.RUNNABLE) nbRunning++;
}

此处枚举了可能的状态:Thread.State javadoc

如果要查看不是以编程方式而是使用 Windows 工具运行的线程,可以使用进程资源管理器


答案 2

您可以获取在 JVM 中运行的所有线程及其堆栈跟踪,并使用 Thread.getAllStackTraces()