运行并发子进程

问题描述

我正在尝试制作 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 (将#修改为@)