进程是资源分配的基本单位:拥有独立的地址空间、文件描述符表等上下文。 线程是 CPU 调度的常见单位:同一进程内的多个线程共享地址空间,切换成本通常低于进程。
1. 为何需要多线程
在 I/O 等待时让其他线程继续工作,或在多核上并行计算,可提高吞吐。 但共享内存也带来竞态条件,需要锁、原子操作或消息传递等同步手段。
2. 阻塞与并发模型
每连接一线程在连接数大时可能耗尽资源;事件驱动、协程、线程池等模型在不同场景各有取舍。 语言运行时与操作系统版本会影响具体行为。
3. 与容器、 cgroup
在 Linux 上,cgroup 可对进程组限 CPU、内存与 I/O;容器常利用 namespace 与 cgroup 组合隔离。 理解进程树有助于排查「僵尸进程」「孤儿进程」等问题。
不同教材对「轻量级进程」等术语定义略有差异;以所用平台文档与 POSIX 语义为准。