多处理在Windows上的Python
问题描述:
我尝试在Python文档中列出http://docs.python.org/library/multiprocessing.html 特别是这两个Windows上的例子:多处理在Windows上的Python
1)
from multiprocessing import Process
def f(name):
print 'hello', name
if __name__ == '__main__':
p = Process(target=f, args=('bob',))
p.start()
p.join()
2)
from multiprocessing import Process
import os
def info(title):
print title
print 'module name:', __name__
print 'parent process:', os.getppid()
print 'process id:', os.getpid()
def f(name):
info('function f')
print 'hello', name
if __name__ == '__main__':
info('main line')
p = Process(target=f, args=('bob',))
p.start()
p.join()
这里是问题:我没有从子进程得到任何输出。它虽然在Linux上工作。到底是怎么回事?
答
例1效果很好(我希望你把程序保存在一个文件中,然后执行它,否则它根本不会识别函数f)。
如果你想要父进程的id,例子2将不起作用。在Windows中没有getppid。
只需打印os.getppid并执行,其辉煌一如既往!
请参考这个更多的Doug
我建议你做异常处理。这会让我们更清晰! – King 2011-12-26 23:18:23
除了父进程中的os.getppid,我没有得到任何异常。如果我删除,我只是得到父母的输出,并没有打印任何儿童。 – Bruce 2011-12-26 23:23:01