我尝试用谷歌搜索,但找不到。我正在寻找:
进程 X 中的线程数
当前正在运行的线程总数
答案1
获取给定 pid 的线程数:
ps -o nlwp <pid>
获取系统中运行的所有线程的总和:
ps -eo nlwp | tail -n +2 | awk '{ num_threads += $1 } END { print num_threads }'
答案2
要查找运行单个进程的线程数,您可以查看/proc/<pid>/status
。它应该将线程数列为字段之一。
答案3
我根据这个答案做出判断ps axms
。ps
这是一个列出正在运行的内容的绝佳工具。
如果您想通过流程进行过滤,您可以尝试如下操作:
echo $(( `ps axms | grep firefox | wc -l` - 1))
我们减去 1 因为 grep 将显示在该列表中。
对于所有线程来说,这应该有效:
echo $(( `ps axms | wc -l` - 1))
这次我们减一,因为有一个标题行。
答案4
要获取某个进程的线程总数(进程中同时运行的小部分),您可以使用该命令。ps -o nlwp <pid>
它始终有效。但是,如果您更喜欢尝试通过文件查看它。您可能应该查看为系统的每个进程创建的文件。在那里,您可以获得进程的最终详细信息。对于每个进程,都有一个在其中创建的文件夹,/proc/<pid>
您还可以查看所有其他详细信息。