以自己遇到的一道题为例:
编写一个启动五个进程的并发程序,让每个进程中的线程打印几行输出,然后停止
刚开始觉得写3个fork()产生8个进程,然后kill 3个进程就好,后来才发现很难实现
后来想了好久才想出下面的简单方法:
#include<stdlib.h>
#include<stdio.h>
intmain() {
int pid,pid1,pid2;
pid = fork();
pid1 = fork();
if(pid == 0 && pid1 == 0)
fork();
printf("process!\n");
return 0;
}
就是先fork两次,产生四个进程,又发现在四个进程中,只有一个进程同时满足if条件,就在这个if中再fork一次,这样就再生成一个子进程,一共5个进程