如何获取(从终端)总线程数(每个进程和所有进程的总数)

我试着谷歌搜索它,但我找不到它。 我在寻找:

  1. 进程X中的线程数

  2. 当前运行的线程总数

获取给定pid的线程数:

ps -o nlwp  

获取系统中运行的所有线程的总和:

 ps -eo nlwp | tail -n +2 | awk '{ num_threads += $1 } END { print num_threads }' 

要查找运行单个进程的线程数,可以查看/proc//status 。 它应该列出线程数作为其中一个字段。

我的答案围绕ps axmsps是一个很好的工具,用于列出正在运行的内容。

如果你想通过一个过程过滤它,你可以尝试这样的事情:

 echo $(( `ps axms | grep firefox | wc -l` - 1)) 

我们减1,因为grep将显示在该列表中。

对于所有线程一般来说这应该工作:

 echo $(( `ps axms | wc -l` - 1)) 

我们这次减1,因为有一个标题行。

要获得a的线程总数(同时运行的进程的微小部分),可以使用命令ps -o nlwp 它始终有效。 但是,如果您希望尝试通过文件查看它。 您应该查看为系统的每个进程创建的文件。 在那里,您可以获得该过程的最终细节。 对于每个进程,在/proc/创建了一个文件夹,您还可以看到所有其他详细信息。