要查看进程内各线程资源占用,需以线程为独立调度单元:用 top -H -p PID 实时监控,ps -Lf PID 查静态快照,/proc/TID/{stat,status,stack} 定位细节,htop 或 pstree 辅助识别。

要查看进程内各线程的资源占用情况,关键在于把“线程”当作独立调度单元来观察——Linux 内核中线程本质是轻量级进程(LWP),每个线程有独立的 TID(线程 ID),并可单独消耗 CPU 和内存。
用 top -H 实时查看线程级 CPU 和内存
运行 top -H -p PID,即可只监控指定进程的所有线程:
- -H 启用线程模式,每行显示一个线程(而非一个进程)
- -p PID 限定范围,避免被其他进程干扰
- 界面中 %CPU 和 %MEM 列直接反映单个线程的实时占用
- 按 P(大写)可按 CPU 占用降序排列,M 按内存降序排列
用 ps -Lf 查看线程列表及基础资源指标
执行 ps -Lf PID 可获得静态快照:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- L 表示显示线程(LWP),F 包含更全字段,- 避免截断命令名
- 输出中 LWP 列即为线程 ID(TID),等同于 PID 列(主线程除外)
- SPID(部分版本显示为 TID)也是线程 ID,与 ps -T 中的 TID 一致
- %CPU 和 RSS(实际物理内存,单位 KB)可横向对比各线程开销
结合 /proc/[TID]/stat 和 /proc/[TID]/status 定位细节
对可疑线程(如高 CPU 的 TID),可深入其 proc 目录获取精确数据:
- /proc/TID/stat:第14、15项为 utime/stime(用户态/内核态 jiffies),反映累计 CPU 时间
- /proc/TID/status:关注 Threads: 1(确认是线程)、voluntary_ctxt_switches 和 nonvoluntary_ctxt_switches(判断是否频繁阻塞或被抢占)
- /proc/TID/stack(需 root):查看当前调用栈,辅助判断卡点(如锁等待、IO 阻塞)
进阶技巧:用 htop 或 pstree 辅助识别
若系统已安装 htop:
- 运行 htop -p PID,按 F5 切换树状视图,清晰看到主线程与子线程的父子关系
- 鼠标点击 %CPU 或 %MEM 列头,自动排序,响应比 top 更灵敏
- 用 pstree -p PID 快速确认该进程下有多少线程及其 TID 分布

















