Win 7,x64,Python 2.7,Anaconda 4.2.0,IPython 5.1.0
我正在处理一些multiprocessing
教程&在IPython控制台中工作时立即遇到问题。下面的代码......
import multiprocessing
print 'hello'
def worker():
"""worker function"""
print 'Worker'
return
jobs = []
for i in range(5):
p = multiprocessing.Process(target=worker)
jobs.append(p)
p.start()
我期待......
hello
worker
worker
worker
worker
worker
但我得到了......
hello
为什么worker
函数的输出没有显示在IPython控制台中?
编辑:当从Anaconda命令行运行时,它会在print 'Worker'
行上出现语法错误,但是如果我继续按Enter键,则从Python控制台运行时会按预期运行。
编辑2:现在在Anaconda命令窗口中工作(我安装了错误的Python)。该问题不仅限于此代码。任何并行化函数中的任何print语句都不会出现在IPython控制台中。
答案 0 :(得分:0)
试试这个:
for i in range(5):
p = multiprocessing.Process(target=worker)
jobs.append(p)
p.start()
p.join()
我怀疑ipython在主进程/函数完成时结束了子进程,join
应该有助于防止这种情况发生。