[英]How many child processes are created?
for(i=0;i<5;i++)
for(i=0;i<5;i++)
fork();
上面的代码创建了多少个子进程?
我的尝试:
我首先解决了内部循环,总共得到 32 个进程,其中 31 个是子进程和 1 个父进程。
然后,我选择了循环 5 次的外循环,从而产生了 31 * 5 = 155 个子进程。
我做对了吗?
for(int i=0; i<n; i++)
fork();
对于这种情况,创建的进程总数始终为2^n - 1
因为fork()
将被n
次调用。
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
fork();
对于这个双for-loop
, fork()
被调用n^2
次,因此创建的进程总数将是,
2^(n^2) - 1
对于此类问题,重要的是计算您的fork()
被调用的次数。
对于您的情况n=5
因此子进程的总数将为2^25 - 1
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.