在两个进程子P1和P2之间进行排序

时间:2014-11-02 12:46:16

标签: c fork semaphore

我尝试解决两个子进程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;
}

我正在寻找一种非常简单的方式来获得此订单。也许用信号量,管道或信号没有?

0 个答案:

没有答案