给你最简洁、能直接用、新手一看就懂的 Linux C++ 多进程核心内容,不废话。
1. 核心 API(就这 3 个最常用)
- fork():创建子进程
- getpid():获取当前进程 ID
- wait() / waitpid():等待子进程结束,防止僵尸进程
2. 极简可运行代码
cpp
运行
#include <iostream>
#include <unistd.h> // fork, getpid
#include <sys/wait.h> // wait
using namespace std;
int main() {
// 创建子进程
pid_t pid = fork();
if (pid < 0) {
cout << "创建失败" << endl;
return -1;
}
// 子进程
if (pid == 0) {
cout << "我是子进程 PID: " << getpid() << endl;
return 0;
}
// 父进程
else {
cout << "我是父进程 PID: " << getpid() << endl;
wait(NULL); // 等子进程结束
cout << "子进程已退出" << endl;
}
return 0;
}
编译运行
bash
运行
g++ test.cpp -o test
./test
3. 最关键知识点
- fork 调用一次,返回两次
- 返回
0→ 子进程 - 返回
>0→ 父进程
- 返回
- 父子进程内存独立,互不干扰
- 父进程必须
wait子进程,否则会产生僵尸进程 - 多进程适合:CPU 密集任务、独立子任务、稳定性要求高的场景
4. 3 句话总结
- fork () 造子进程
- 按返回值区分父子
- wait () 收尸防僵尸