我尝试解决两个子进程P1和P2之间的一个小订单问题。我想要这个顺序:P1激活然后P2激活然后P1激活然后P2激活然后等我认为你理解这个想法,当一个进程变得活跃时,他只是激活另一个进程。所以我希望这两个过程一个接一个地激活。
我用这种方式创建我的流程:
int process_order(int n) {
pid_t pid1, pid2;
pid1 = fork();
if(pid1 == -1) {
perror("Error forking process : ");
exit(EXIT_FAILURE);
} else if(pid1 == 0) { /* Child 1 */
/* Make active P2 */
} else {
pid2 = fork();
if(pid2 == -1) {
perror("Error forking process : ");
exit(EXIT_FAILURE);
} else if(pid2 == 0) { /* Child 2 */
/* Make active P1 */
} else {
wait(NULL);
wait(NULL);
}
}
return 1;
}
我正在寻找一种非常简单的方式来获得此订单。也许用信号量,管道或信号没有?