【发布时间】:2026-02-07 00:40:01
【问题描述】:
如何让 3 个进程并行运行?下面的解决方案是否正确? 在我的解决方案中,我放了一些代码来查看经过的时间,我认为这是在顺序模式下进行调整。我需要让pid1、pid2和pid3同时运行。
pid = fork();
if(pid == 0) {
//code...
exit(EXIT_SUCCESS);
} else if(pid > 0) {
pid1 = fork();
if(pid1 == 0) {
//pid1 code...
exit(EXIT_SUCCESS);
} else if(pid1 > 0) {
waitpid(pid1, &status, 0);
} else {
printf("Fork error %d.\n", errno);
}
pid2 = fork();
if(pid2 == 0) {
//pid2 code...
exit(EXIT_SUCCESS);
} else if(pid2 > 0) {
waitpid(pid2, &status, 0);
} else {
printf("Fork error %d.\n", errno);
}
pid3 = fork();
if(pid3 == 0) {
//pid3 code...
exit(EXIT_SUCCESS);
} else if(pid3 > 0) {
waitpid(pid3, &status, 0);
} else {
printf("Fork error %d.\n", errno);
}
waitpid(pid, &status, 0);
}
【问题讨论】:
-
注意:可以创建的并发进程数与C语言无关。它由您的操作系统控制,在任何现代操作系统上,支持的并发进程数都在数千个。