c++并发编程之进程创建

1.进程创建

先上代码:

 1  #include"iostream"                                                                                                                                        
 2  #include<unistd.h>
 3    int main()
 4    { 
 5        using namespace std;
 6        pid_t pid;
 7       cout<<"parent have!"<<endl;
 8            pid = fork();//执行fork的时候到底发生了什么?
 9        if(pid == -1)//错误创建
10        {
11            perror("fork error");
12              _exit(1);
13        }
14        else if(pid == 0)//子进程
15        {
16 
17            cout<<"i am child,pid = "<<getpid()<<" my parent is:"<<getppid()<<endl;
18        }
19        else//父进程
20        {
21           // sleep(1);
22            cout<<"i am parent,pid = "<<getpid()<<" my parent is:"<<getppid()<<endl;
23        }
24        cout<<"both have!"<<endl;
25        return 0;
26    }

运行结果:

 程序及结果分析:

2.创建多个子进程

 1  #include"iostream"                                                                                                                                        
 2  #include<unistd.h>
 3    int main()
 4    { 
 5        using namespace std;
 6        pid_t pid;
 7       cout<<"parent have!"<<endl;
 8       for(int i = 0;i < 5;i++)
 9       {
10             pid = fork();//执行fork的时候到底发生了什么?
11             if(pid == 0)
12             {
13                // cout<<"the ID of son "<<i+1<<":"<<getpid()<<endl;
14                  break;//这个很重要,思考为什么
15             }
16       }
17          
18        if(pid == -1)//错误创建
19        {
20            perror("fork error");
21              _exit(1);
22        }
23        else if(pid == 0)//子进程
24        {
25            //sleep(1);
26            cout<<"i am child,pid = "<<getpid()<<" my parent is:"<<getppid()<<endl;
27        }
28        else//父进程
29        {
30            sleep(1);
31            cout<<"i am parent,pid = "<<getpid()<<" my parent is:"<<getppid()<<endl;
32        }
33        cout<<"both have!"<<endl;
34        return 0;
35    }

程序运行结果:

 程序及结果分析:

父子进程共享

共享遵循的原则:读时共享写时复制原则

猜你喜欢

转载自www.cnblogs.com/shaonianpi/p/11442915.html