码迷,mamicode.com
首页 > 系统相关 > 详细

利用fork循环创建进程

时间:2016-06-23 01:15:55      阅读:398      评论:0      收藏:0      [点我收藏+]

标签:父子进程

我们知道,fork可以创建子进程,那么如果循环调用fork,进程之间会有什么关系呢?

技术分享得到结果:

技术分享

从结果上分析,一共有4个进程,6132,6133,6134,6135,它们的关系是怎样的呢?

技术分享

按道理来讲,刚开始i=0,只有一个进程6132,fork后,产生子进程6133。6132执行完printf后,i++。在fork后,6132作为父进程,产生子进程6134.而6133作为i=0时的子进程,执行完printf后,i++,此时6133作为父进程,产生子进程6135。 

结果却和所想有些出入,为什么后4个进程的父进程都是1?

我认为可能和内核进程调度算法有关,可能是因为父进程执行完,而子进程没有执行完,导致子进程成为孤儿进程,被1给回收。

之后我给父进程加上sleep(1);

这样就能够直观的显示进程之间的关系了。

技术分享    


利用fork循环创建进程

标签:父子进程

原文地址:http://wanggaojun.blog.51cto.com/11409446/1791876

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!