3. 进程线程

什么是进程线程?

你可能听说过单线程和多线程这两个术语。线程是进程内的执行单元,通常被称为“轻量级进程”。进程拥有自己隔离的系统资源,而同一进程内的线程可以共享这些资源,例如内存。这种共享资源模型使得线程间的通信比单独进程间的通信快得多,效率也更高。

单线程与多线程

每个进程至少有一个线程。只有一个线程的进程称为单线程进程,而拥有多个线程的进程称为多线程进程。

例如,当你使用现代文本编辑器时,它可能作为一个单一进程运行。然而,在该进程内部,一个线程可能负责管理你的键盘输入,而另一个线程在后台运行以执行拼写检查或自动保存。这种并发执行使得应用程序感觉更具响应性。对于相关任务,使用多个线程通常比启动多个进程更有效率。

如何使用 ps 显示线程

要检查正在运行的进程及其线程,可以使用 ps 命令。虽然 ps 有很多选项,但显示线程的一种常见方法是使用 m 标志。

pete@icebox:~$ ps m
  PID TTY      STAT   TIME COMMAND
 2207 pts/2    -      0:01 bash
    - -        Ss     0:01 -
 5252 pts/2    -      0:00 ps m
    - -        R+     0:00 -

解释输出

在上面的输出中,带有 PID(进程 ID)的行代表主进程。紧随其后、在 PID 处显示为破折号 (-) 的行代表属于该进程的线程。在这个例子中,bashps m 进程都是单线程的,因为每个只列出了一个主线程。

登录以保存您的学习进度

登录

练习

实践造就完美!以下是一些实践实验,以巩固您对 Linux 进程及其管理的理解:

  1. 管理和监控 Linux 进程 - 在此实验中,您将学习管理和监控 Linux 系统上进程的基本技能。您将探索如何与前台和后台进程交互,使用 ps 检查它们,使用 top 监控资源,使用 renice 调整优先级,以及使用 kill 终止它们。

此实验将帮助您在实际场景中应用进程管理概念,并增强监控系统活动的信心。

测验

对还是错,所有进程最初都是单线程的。