1. 进程(Process)
概念(C++ 视角)
- 进程是程序的一次运行实例,拥有独立的内存空间(代码段、数据段、堆、栈)。
- C++ 程序运行后,OS 会为它创建一个进程。
- 不同进程之间内存隔离,需要 IPC(管道、共享内存、Socket 等)通信。
优点
| 优点 | 说明 |
|---|
| 隔离性好、稳定性高 | 一个进程崩溃不会影响其他进程 |
| 安全性好 | 内存独立,不易被非法访问 |
| 适合多核并行 | 多进程可充分利用 CPU 核心 |
缺点
| 缺点 | 说明 |
|---|
| 创建开销大 | 需要分配独立内存空间 |
| 切换开销大 | 进程切换需要保存大量上下文 |
| 通信复杂 | IPC 通信比线程复杂得多 |
应用场景
- Chrome 浏览器多进程架构(保证一个 Tab 崩溃不影响其它)
- 后端服务拆成多个微服务(隔离性高)
- 高安全、高可靠场景(银行、支付模块)
1. 进程示例(fork + exec,Linux)
Windows 不能用 fork(),Linux/Unix 可以。示例中父进程创建子进程,子进程执行 ls 命令。
#include <iostream>
#include <unistd.h>
#include <sys/wait.h>
int main() {
pid_t pid = fork();
if (pid < 0) {
std::cerr << "Fork failed\n";
return 1;
}
if (pid == 0) {
std::cout << << () << ;
(, , , );
} {
std::cout << << () << ;
();
std::cout << ;
}
;
}