温馨提示×

linux进程如何查看线程

小樊
45
2026-07-10 06:12:58
栏目: 智能运维

在 Linux 中,进程和线程本质上是同一个东西(task),线程通常被称为“轻量级进程(LWP)”。查看线程的方法有很多,下面按常用程度给你总结。


一、最常用方式(推荐)

1️⃣ ps 查看线程(最常用)

查看某个进程的所有线程

ps -T -p <PID>

示例:

ps -T -p 1234

输出说明:

  • PID:进程 ID
  • SPID:线程 ID(TID)
  • CMD:线程名 / 命令

最推荐、最清晰


2️⃣ top 实时查看线程

top -H -p <PID>

示例:

top -H -p 1234

说明:

  • -H:显示线程
  • 每一行是一个线程
  • 可以看到每个线程的 CPU 使用率

排查高 CPU 线程非常有用


二、查看系统中所有线程

3️⃣ ps 查看所有线程

ps -eLf

或:

ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,comm

字段说明:

  • PID:进程 ID
  • TID:线程 ID
  • COMM:线程名

三、通过 /proc 文件系统(底层方式)

4️⃣ 查看某个进程的所有线程

ls /proc/<PID>/task/

示例:

ls /proc/1234/task/

每个数字目录就是一个线程 ID(TID)

非常底层、准确


5️⃣ 查看线程详细信息

cat /proc/<PID>/task/<TID>/status

示例:

cat /proc/1234/task/1235/status

重点字段:

  • Tgid:线程组 ID(等于 PID)
  • Pid:线程 ID(TID)
  • Name:线程名

四、使用 htop(更直观)

6️⃣ htop 查看线程

htop

然后按:

  • F2 → 开启 Display threads
  • 或启动:
htop -H

图形化、交互式,非常好用


五、查看线程栈(调试用)

7️⃣ pstack(或 gdb

pstack <PID>

或:

gdb -p <PID>
(gdb) info threads

排查死锁、卡死线程


六、总结对照表

需求 推荐命令
查看某进程线程 ps -T -p PID
实时看线程 CPU top -H -p PID
查看所有线程 ps -eLf
底层查看 /proc/PID/task/
图形化查看 htop -H
调试线程 pstack / gdb

如果你愿意,可以告诉我:

  • ✅ 你在 排查 CPU 高
  • ✅ 还是在 看 Java / C++ 线程
  • ✅ 或者是 容器 / Docker 环境

我可以给你更针对性的命令示例。

0