在 Linux 中使用 PS 命令显示线程在 Linux 中使用 PS 命令显示线程在 Linux 中使用 PS 命令显示线程在 Linux 中使用 PS 命令显示线程
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

在 Linux 中使用 PS 命令显示线程

在现代操作系统中,线程作为一种流行的编程抽象。发生这种情况时,这些线程共享打开的文件、空间和内存地址等资源。它避免了进程间通信(昂贵的 IPC)通道并减少了分叉开销。结果,线程执行并发执行机制。

在 Linux 中,线程也称为 LWP 或轻量级进程。程序内创建的这些线程都有一个“线程组ID”,与程序的PID相同。为每个线程分配了一个单独的线程 ID (TID)。 Linux 内核中的调度程序线程共享一些资源,这些资源是标准进程。

除了默认显示进程级信息外,经典的命令行工具(例如top、ps)也可以显示线程级信息。 ps、top 和 htop 是经典命令,默认情况下会显示进程级信息。您还可以使用前面的命令查看线程级信息。本指南将仅介绍 ps 命令并解释 ps 命令如何在 Linux 中显示线程。

在 Linux 中使用 PS 命令显示线程

借助 ps 命令,您可以使用许多过滤器(如 PID(进程 ID)、应用程序名称等)查看线程。此命令在 BSD 或 macOS 上不起作用,因为没有选项可以显示线程和-t 参数有不同的含义。

让我们从终端中的以下命令开始,使用 ps 命令列出所有线程:

ps -eLf

显示带有 PID 的线程

以下是使用 PID 查看线程的 ps 命令的标准语法:

ps -T -p <pid>
ps -T p <pid>
-T List all threads
-p Specifies the process ID

您可以查看特定 PID 的线程。按照之前的标准语法,输入你想知道的线程的PID号。

例如,我们使用PID <1904>。语法如下:

ps -T -p 1904
ps -Tp 1904

“SPID”列显示先前输出中的线程 ID。 “CMD”列代表线程名称。

显示带有应用程序名称的线程

以下是使用应用程序名称查看线程的 ps 命令的标准语法:

ps -T -C <application name>
Option Description
-T List all threads
-C Specifies the application name

例如,让我们找出与 Bash 应用程序相关的线程。这是基本命令:

ps -T -C bash

显示带有过滤器的线程

ps 命令的标准语法是使用过滤器查看线程,如下所示:

ps -e -T | grep <filter>
-e

显示所有进程

|

将输出传送到下一个命令

grep

它借助 过滤内容

您可以通过应用程序名称过滤内容。键入并执行以下命令来完成它:

ps -e -T | grep <application name>
ps -e -T | grep bash

您还可以使用 PID 来过滤线程:

ps -e -T | grep <PID>
ps -e -T | 1904

在前面的输出中,您可能会注意到所有线程都具有相同的 PID。这意味着之前的所有线程都在同一个进程中。

要查找系统中所有正在运行的线程的总和,可以执行以下命令:

ps -eo nlwp | tail -n +2 | awk '{ num_threads += $1 } END { print num_threads }'

您可以使用“pgrep”或“pidof”来获取进程名称的进程ID:

ps -o nlwp $(pgrep <application_name>)

或者

ps -o nlwp $(pidof <application_name>)

结论

在Linux中,线程是由程序使用“线程组ID”(如PID)创建的。有多种方法可以使用各种命令来显示 Linux 中的线程。在本指南中,我们解释了使用 ps 命令查看线程的不同方法。

使用 ps 命令有一个优点,因为它会显示您想要的所有详细信息。您可以使用 PID、应用程序名称等过滤和查看线程。您还可以通过 ps 命令监视线程计数。

©2015-2025 艾丽卡 support@alaica.com