C - 父母与他的N个孩子同时表演

时间:2017-12-13 22:28:27

标签: c process synchronization

我正在为一项任务开发一个项目,我们必须分叉10个子进程并让他们完成特定的任务。同时,父母需要在执行他的孩子的同时每5秒做一次特定的动作。困扰我的是我知道父母需要等待他的所有孩子在完成任务之前处理,但是当我通过for循环分配多个孩子时,父母做出的动作重复10次(因为10是我需要做的叉子数量)。这是我的代码:

for (int i = 0; i < 10; ++i) {

    switch (pids[i] = fork()) {

        case -1:
            fprintf(stderr,"Error #%03d: %s\n", errno, strerror(errno));
            exit(1);
            break;

        case 0:
           /*
            * child tasks
            */              
            exit(0);
            break;

        default:
            break;
    }
}

for (int k = 0; k < init_people; k++) {
    waitpid(pids[k], &returnStatus, 0);
}

我想知道的是,父母是否有办法同时执行他的孩子(不是在他们完成自己的执行之前或之后)但是在周期之外这样做不是重复10次。提前感谢您的时间。

0 个答案:

没有答案