什么是进程线程?
你可能听说过单线程和多线程这两个术语。线程是进程内的执行单元,通常被称为“轻量级进程”。进程拥有自己隔离的系统资源,而同一进程内的线程可以共享这些资源,例如内存。这种共享资源模型使得线程间的通信比单独进程间的通信快得多,效率也更高。
单线程与多线程
每个进程至少有一个线程。只有一个线程的进程称为单线程进程,而拥有多个线程的进程称为多线程进程。
例如,当你使用现代文本编辑器时,它可能作为一个单一进程运行。然而,在该进程内部,一个线程可能负责管理你的键盘输入,而另一个线程在后台运行以执行拼写检查或自动保存。这种并发执行使得应用程序感觉更具响应性。对于相关任务,使用多个线程通常比启动多个进程更有效率。
如何使用 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 处显示为破折号 (-) 的行代表属于该进程的线程。在这个例子中,bash 和 ps m 进程都是单线程的,因为每个只列出了一个主线程。