首页 > 编程语言 > 详细

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

时间:2019-09-01 19:10:33      阅读:50      评论:0      收藏:0      [点我收藏+]

 

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    }

程序运行结果:

技术分享图片

 

 

 程序及结果分析:

 

 

父子进程共享

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

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

原文:https://www.cnblogs.com/shaonianpi/p/11442915.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!