【发布时间】:2014-02-22 10:43:18
【问题描述】:
我有 2 个并行运行的进程,然后是另外 4 个并行运行的进程。然后我等待它们完成,然后再启动另外 10 个并行运行的进程,然后等待它们完成,然后再让父进程完成。
这有时有效,但有时无效。特别是在最后,父级退出但其他程序仍在运行并在父级完成后打印内容。而且它真的很重复,我试着把它变成一个函数,但无法让它工作;所有进程并行运行或每组仅执行一个。有没有更好的方法来实现这一点?
...
waitpid(p1,0,0);
for(i = 0; i<4; i++) {
switch(p1 = fork()) {
case 0:
execl("prog", "prog", NULL);
exit(0);
case -1:
perror("fork");
exit(1);
}
}
waitpid(p1,0,0);
for(i = 0; i<10; i++) {
switch(p1 = fork()) {
case 0:
execl("prog", "prog", NULL);
exit(0);
case -1:
perror("fork");
exit(1);
}
}
waitpid(p1,0,0);
【问题讨论】:
标签: c parallel-processing exec