我如何才能获得在一个进程下运行的子线程总数?

时间:2012-03-19 13:50:47

标签: java process

我有一个代码,它为我提供了在我的计算机上运行的进程列表。

     String line;
     Process p = Runtime.getRuntime().exec
        (System.getenv("windir") +"\\system32\\"+"tasklist.exe");
     BufferedReader input =
            new BufferedReader(new InputStreamReader(p.getInputStream()));
     while ((line = input.readLine()) != null) {
     System.out.println(line);

此代码提供正在运行的进程列表。

假设我正在运行2个Notepad,那么它将为两行提供notepad.exe。

但是假设我打开了两个word文档,那么只有一个word.exe。 因为在这种情况下,有两个子线程在一个进程下打开。

所以我的问题是如何在一个进程下运行子线程的总数?

1 个答案:

答案 0 :(得分:0)

您可以使用sysinternals中的pslist.exe

执行此操作

http://technet.microsoft.com/de-de/sysinternals/bb896682

e.g。 pslist -x chrome让你得到所有chrome进程的所有线程

调用pslist.exe并检索结果可以类似于调用tasklist.exe。