子进程应该在满足Python中的条件后启动

时间:2016-02-11 04:21:16

标签: python

import os
import pdb

def timeConsumingFunction():
    x=1

    for n in xrange(100000000):
        x+=1
        print "child runnig",x
    return x

x=1
child=-1
for n in xrange(100000):
    x+=1
    print "parent running",x
    if x>50000:
        pid=os.fork()
        if pid>0:
            child=pid

        else:
            print timeConsumingFunction()
            os._exit(0)
os.waitpid(child,0)
print "hello"

我想先从0到50000打印父级,当它达到50000时,必须启动一个新的子进程,然后父级和子级应继续并行执行。但是在达到50000后这段代码中,它停止执行“并行运行”语句。

1 个答案:

答案 0 :(得分:1)

您的代码将产生许多许多(理论上最多50000)个孩子,而不仅仅是一个。当操作系统允许时,父母可能会继续运行,但是你可能无法在它开始的众多孩子的输出风暴下看到它的输出。

尝试将x > 50000条件更改为x == 50000,我怀疑它会按照您的意图运行,只有一个孩子在父母旁边运行。