Linux 有问必答:如何在 Linux 中统计一个进程的线程数
2023-03-14 22:40:52 时间
问题: 我正在运行一个程序,它在运行时会派生出多个线程。我想知道程序在运行时会有多少线程。在 Linux 中检查进程的线程数最简单的方法是什么?
如果你想看到 Linux 中每个进程的线程数,有以下几种方法可以做到这一点。
方法一: /proc
proc 伪文件系统,它驻留在 /proc 目录,这是最简单的方法来查看任何活动进程的线程数。 /proc 目录以可读文本文件形式输出,提供现有进程和系统硬件相关的信息如 CPU、中断、内存、磁盘等等.
$ cat /proc/<pid>/status
上面的命令将显示进程 <pid> 的详细信息,包括过程状态(例如, sleeping, running),父进程 PID,UID,GID,使用的文件描述符的数量,以及上下文切换的数量。输出也包括进程创建的总线程数如下所示。
Threads: <N>
例如,检查 PID 20571进程的线程数:
$ cat /proc/20571/status
输出表明该进程有28个线程。
或者,你可以在 /proc//task 中简单的统计子目录的数量,如下所示。
$ ls /proc/<pid>/task | wc
这是因为,对于一个进程中创建的每个线程,在 /proc/<pid>/task
中会创建一个相应的目录,命名为其线程 ID。由此在 /proc/<pid>/task
中目录的总数表示在进程中线程的数目。
方法二: ps
如果你是功能强大的 ps 命令的忠实用户,这个命令也可以告诉你一个进程(用“H”选项)的线程数。下面的命令将输出进程的线程数。“h”选项需要放在前面。
$ ps hH p <pid> | wc -l
如果你想监视一个进程的不同线程消耗的硬件资源(CPU & memory),请参阅此教程。
本文来自云栖社区合作伙伴“Linux中国”,原文发布日期:2015-09-17
相关文章
- 软件测试模型
- 软件开发模型-瀑布模型
- 软件质量模型
- 测试分类
- 常用DOS命令
- IP地址
- 在元宇宙中摔了一跤,好疼!
- 安卓 13 来了!谷歌 Android 13 首个开发者预览版发布(附更新内容大全)
- iOS15.4 再次迎来更新,戴口罩解锁功能更好用了
- bs和cs架构
- iPhone迎来全新功能:实现非接触式支付 可充当收款码
- 浏览器发送URL完整流程
- Android 12L让Chrome在大屏设备上使用率提高18倍
- 测试流程规范
- 苹果发布iOS 15.4和iPadOS 15.4 Beta 2:新增Tap to Pay等功能
- 路由器原理
- 大厂高手出品:这2个苹果控件你肯定分不清!
- 测试计划
- Android 12 疑难崩溃解决之路
- 已确定!iOS 14.8.1 已关闭,iOS 15.1 还剩6天