2011-04-18 59 views
0

当父进程创建一个fork()的子进程时,根据我的 子进程处于Running状态,而父进程处于Ready状态,即等待子进程结束。关于Fork的问题()

我对不对?

回答

0

下面是

东西叉()之后,它是不确定 该方法 - 母公司或下一个子公司有权访问CPU。

应用隐含或明确 依赖于特定的执行 序列,从而实现 正确的结果是开放的 衰竭竞争条件。

它继续指向不同内核中的不同行为。底线是它是实现定义的,不被依赖。

此外,如果你做自2.6.32依靠它,在Linux上“有一个为一个sysctl

kernel.sched_child_runs_first 

干杯

3

不,叉创建父项的副本。

然后你测试一般为叉的返回值说0 =我的孩子,其他:我是家长和孩子有返回值作为PID

如果家长必须等待孩子结束了,你需要使用等待功能。

编辑

看到http://linux.die.net/man/2/forkhttp://linux.die.net/man/2/wait为叉()中C.

+0

谢谢您的回答。在sheduler级别,这两个进程不能有Running状态,所以一个是Running,另一个是Ready? – lilawood 2011-04-18 12:34:59

+0

取决于过程在做什么。但事实上,如果您的处理器一次只运行一个进程,另一个进程不能运行(这意味着它可能是就绪状态) – 2011-04-18 12:36:37

+0

从逻辑上和理论上讲,子进程是运行并且父进程就绪(等待为了结束孩子成为跑步)?谢谢 ! – lilawood 2011-04-18 12:40:03