本文介绍了多少进程本计划创建,包括最初的父进程?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想弄清楚这个程序是如何创建的进程,包括最初的父进程。
正确的答案应该是9,但我不明白为什么,答案是9。如何在这9进程创建的?在此先感谢!
的#include<&stdio.h中GT;
#包括LT&;&unistd.h中GT;
...
诠释的main()
{
将为pid_t约翰;
约翰= fork()的; 如果(约翰== 0){
叉子( );叉子( );叉子( );
}
/ *消耗另一个进程的资源* /
/ *不创建一个新的进程。 * /
消费();消费(); 返回0;
}
解决方案
约翰= fork()的; //叉一个新的进程,我们现在有2个。 如果(约翰== 0){//子进程中的if语句去
叉子( ); //子进程叉2个进程
叉子( ); // 2进程继续叉,所以我们有2个。
叉子( ); // 4个进程继续分叉,所以我们有4个。
}
//到这里,第一叉的子过程现在是8流程
//加入第一父进程,即总共9。
I'm trying to figure out how many processes this program creates, including the initial parent process.The correct answer should be 9, but I don't understand why the answer is 9. How are these 9 processes created? Thanks in advance!
#include <stdio.h>
#include <unistd.h>
…
int main()
{
pid_t john;
john = fork( );
if (john == 0) {
fork( ); fork( ); fork( );
}
/* Consume resources of another process */
/* This does NOT create a new process. */
Consume( ); Consume( );
return 0;
}
解决方案
john = fork( ); //fork a new process, we have 2 now.
if (john == 0) {// child process go in the if statement
fork( ); //child process fork to 2 processes
fork( ); //2 processes continue to fork,so we have 2 more.
fork( ); //4 processes continue to fork, so we have 4 more.
}
//up to here, the child process of the first fork is now 8 processes
//adding the first parent process, that is 9 in total.
这篇关于多少进程本计划创建,包括最初的父进程?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!