创建了多少个子进程?
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
。
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
。