线程是现代操作系统上并行执行的流行编程抽象。 当程序内的多个线程被分叉以执行多个流时,线程在它们之间共享特定资源(例如,存储器地址空间、打开的文件)以最小化分叉开销。 化并避免大量昂贵的IPC(进程间通信)通道。 这些特性使线程成为并发执行的有效机制。
在Linux中,程序中创建的线程(也称为轻量级进程,LWP)将具有与程序的PID相同的“线程组ID”。 然后,每个线程都会获得自己的线程 ID (TID)。 对于 Linux 内核调度程序来说,线程只不过是碰巧共享特定资源的标准进程。 经典的命令行工具,例如 ps 或 top,可用于显示线程级信息,但默认情况下它们显示进程级信息。
以下是在 Linux 上显示进程线程的几种方法。
方法一:PS
ps命令中,“-T”选项可以启用线程查看。下面的命令列出了编号为
进程创建的所有线程。
ps -T -p
“SID”列指示线程ID,而“CMD”列显示线程名称。
方法二:顶部
top命令可以实时显示各个线程的状态。 要在 top 输出中启用线程查看,请调用 top 命令的“-H”选项,该选项会列出所有 Linux 线程。 您还可以在 top 运行时按“H”键来打开或关闭线程视图模式。
top -H
使特定进程的顶部输出
并检查进程内运行的线程的状态:
top -H -p
方法三:Htop
更人性化的方式是通过htop查看单个进程的线程,htop是一个基于htop的交互式进程查看器。 该程序允许您在树视图中监视各个独立线程。
要在 htop 中启用线程查看,请打开 htop 并按 进入 htop 的设置菜单。 选择“设置”栏下的“显示选项”,然后打开“树视图”和“显示自定义线程名称”选项。 按 退出设置。
现在,您将看到以下单个进程的线程视图。