Fork同一时候建立多个子进程方法post
第一种方法:验证经过
特色:同一时候建立多个子进程。每个子进程可以运行不一样的任务,程序
int
{
printf("before
pid_t
if(
{
printf("in
return
}
pid_t
if(
{
printf("in
return
Printf("hello
}
int
waitpid(
waitpid(
printf("in
printf("in
printf("in
printf("in
printf("in
return
}
另一种方法:
特色:同一时候建立两个子进程。结构比較繁琐。程序可读性很差,不易扩展
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
main()
{
printf("This
pid_t
if((p1=fork())==0)
{
printf("This
}
Else
{
if((p2=fork())==0)
{
printf("This
}
Else
{
wait(p1,NULL,0);
wait(p2,NULL,0);
printf("This
}
}
}
第三种方法:for
特色:事实上每次循环仅仅是建立了单个进程。并无同一时候建立多个进程
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
main()
{
printf("This
pid_t
int
for(i=0;i<=2;i++)
{
if((p1=fork())==0)
{
printf("This
return
}
wait(p1,NULL,0);
printf("This
}
}
注意:标注的
无
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
main()
{
printf("This
pid_t
int
for(i=0;i<=2;i++)
{
if((p1=fork())==0)
{
printf("This
//return
}
wait(p1,NULL,0);
printf("This
}
}
结论:父进程会生成
正确的使用Linux中的用fork()由一个父进程建立同一时候多个子进程
int
for
{
}
if
{
}
else
{
}
else
{
}