2012-08-12 56 views

回答

2

我不知道Python,但我觉得你这样做,就像你做它在C,通过检查的fork()返回值:如果你想在孩子执行一些代码

child_pid = os.fork() 
if child_pid == 0: 
    print "This is the child." 
    sys.exit(0) 
print "This is the parent." 
+0

通过这种方式,子进程也会打印出“This is the parent。”。我如何确保“fork block”之外的任何内容不会在子进程*中执行。 – satoru 2012-08-12 11:18:46

+0

不,这是父母打印“这是父母”。子进入该行之前调用'sys.exit(0)'。它是通过退出块的最后一个孩子,你确保孩子除了块之外什么都不执行。 – 2012-08-12 11:24:39

3

流程,使用multiprocessing模块。下面是一个例子,从文档:

from multiprocessing import Process 

def f(name): 
    print 'hello', name 

if __name__ == '__main__': 
    p = Process(target=f, args=('bob',)) 
    p.start() 
    p.join() 

这个例子说明如何使用函数˚F可以在子进程中执行。

相关问题