如何获取(从终端)总线程数(每个进程和所有进程的总数)
我试着谷歌搜索它,但我找不到它。 我在寻找:
-
进程X中的线程数
-
当前运行的线程总数
获取给定pid的线程数:
ps -o nlwp
获取系统中运行的所有线程的总和:
ps -eo nlwp | tail -n +2 | awk '{ num_threads += $1 } END { print num_threads }'
要查找运行单个进程的线程数,可以查看/proc/
。 它应该列出线程数作为其中一个字段。
我的答案围绕ps axms
。 ps
是一个很好的工具,用于列出正在运行的内容。
如果你想通过一个过程过滤它,你可以尝试这样的事情:
echo $(( `ps axms | grep firefox | wc -l` - 1))
我们减1,因为grep将显示在该列表中。
对于所有线程一般来说这应该工作:
echo $(( `ps axms | wc -l` - 1))
我们这次减1,因为有一个标题行。
要获得a的线程总数(同时运行的进程的微小部分),可以使用命令ps -o nlwp
它始终有效。 但是,如果您希望尝试通过文件查看它。 您应该查看为系统的每个进程创建的文件。 在那里,您可以获得该过程的最终细节。 对于每个进程,在/proc/
创建了一个文件夹,您还可以看到所有其他详细信息。