当父进程使用fork()
创建子进程时,根据我的说法,
子进程处于Running
状态,而父进程处于Ready
状态,即等待子进程结束。
我是对的吗?
答案 0 :(得分:3)
不,fork会创建父级的副本。
然后你通常测试fork的返回值,它表示0 =我是孩子,其他:我是父,孩子的返回值是PID
如果父母必须等待孩子结束,则需要使用等待功能。
修改强>:
请参阅http://linux.die.net/man/2/fork和http://linux.die.net/man/2/wait了解C中的fork()。
答案 1 :(得分:0)
这是来自
的内容在fork()之后,它是不确定的 哪个过程 - 父母或者 child-next可以访问CPU。
隐式或 明确地依赖于特定的 执行顺序以便 达到正确的结果是开放的 由于竞争条件而失败。
它继续指出不同内核中的不同行为。最重要的是,它是实现定义的,不能依赖它。
此外,如果你做想要依赖它,那么在2.6.32以后的Linux上“那里有一个sysctl
”
kernel.sched_child_runs_first
干杯