如何解决运行并发子进程
我正在尝试制作 3 种进程(1 proc1、4 proc2 和 5 proc3)并使它们同时运行。我写了一些代码,但似乎没有重叠,即使使用 sleep()
函数,即进程总是以相同的顺序运行。我想知道这是否是创建多个进程的正确方法。
int main() {
setbuf(stdout,NULL);
setbuf(stderr,NULL);
int pid;
pid = fork();
if(pid < 0) {
fprintf(stderr,"Fork error.");
exit(2);
} else if(pid == 0){ //Child
proc1();
exit(0);
} else { //Parent
for(int i=0; i<4; i++) {
int child2ID = fork();
if(child2ID == 0) {
proc2();
exit(0);
}
}
for(int i=0; i<5; i++) {
int child3ID = fork();
if(child3ID == 0) {
proc3();
exit(0);
}
}
}
while(wait(NULL)) {
if(errno == ECHILD)
break;
}
return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。