可通过ps、/proc/PID/status、top、pstree、htop五种方法统计线程数:ps -T -p PID | wc -l减1得进程线程数;grep Threads /proc/PID/status直接读取内核值;top按H键后看Tasks行total值;pstree -p -t PID计括号内TID数;htop按H键查看顶部Threads数值。

如果您需要了解某个进程当前创建了多少线程,或想监控系统中线程的总体使用情况,则可通过 Linux 命令行工具直接获取线程数量信息。以下是几种常用且有效的统计方法:
一、使用 ps 命令查看指定进程的线程数
ps 命令可显示进程及其线程的快照,配合 -T 选项可列出线程,再通过 wc -l 统计行数即可得出线程总数。
1、执行 ps -T -p PID | wc -l,其中 PID 替换为目标进程的实际进程号。
2、若需排除表头行,减去 1:结果值减 1 即为该进程当前线程数。
3、例如查看 PID 为 1234 的进程线程数,运行 ps -T -p 1234 | wc -l,输出 5 则表示含主线程共 5 个线程,实际工作线程为 4 个。
二、读取 /proc/PID/status 文件获取线程计数
/proc 文件系统中每个进程目录下的 status 文件包含 Threads 字段,其值即为内核维护的当前线程数,无需解析多行输出,精确可靠。
1、执行 grep Threads /proc/PID/status,将 PID 替换为具体进程号。
2、输出形如 Threads: 8,冒号后数字即为该进程当前线程总数。
3、该数值由内核实时更新,不依赖用户态调度状态,适合脚本化调用。
三、使用 top 命令动态查看线程总数(全局)
top 默认以进程为单位显示,但启用线程模式后,每条线程作为独立条目列出,顶部摘要行会显示总线程数(Tasks 行中的 total 后数值即为线程总数)。
1、运行 top 进入交互界面。
2、按下 H 键切换线程视图(Threads on/off),此时顶部显示的 Tasks 行中,total=xxx 即为当前系统所有线程总数。
3、按 q 退出 top。
四、使用 pstree 查看进程树及线程分支
pstree 以树状结构展示进程与子进程关系,配合 -p 和 -t 选项可显示 PID 并标注线程,便于人工识别多线程进程及其线程分布。
1、执行 pstree -p -t | grep --color=always "(\d\+)" 可高亮所有 PID 和 TID。
2、对特定进程使用 pstree -p -t PID,输出中每个括号内的数字均为一个线程 ID,计数括号数量即可得线程数。
3、注意:主线程与子线程均显示为独立节点,同一进程下所有带相同父 PID 的线程节点均计入该进程线程总数。
五、使用 htop 命令(需预先安装)查看线程详情
htop 是增强型交互式进程查看器,默认支持线程视图,可直观区分进程与线程,并提供按线程排序、过滤等功能。
1、执行 htop 启动程序。
2、按 F2 进入 Setup 菜单,选择 Display options,勾选 Show custom thread names 和 Hide kernel threads(按需)。
3、按 H 切换线程/进程视图,此时每行代表一个线程,顶部栏显示 Threads: N,N 即为当前可见线程总数。







