我正在运行以下(示例)代码:
from multiprocessing import Pool
def f(x):
return x*x
pool = Pool(processes=4)
print pool.map(f, range(10))
但是,代码永远不会完成。我究竟做错了什么?
线
pool = Pool(processes=4)
成功完成,它似乎在最后一行停止。即使按ctrl + c也不会中断执行。我在Spyder的ipython控制台中运行代码。
from multiprocessing import Pool
def f(x):
return x * x
def main():
pool = Pool(processes=3) # set the processes max number 3
result = pool.map(f, range(10))
pool.close()
pool.join()
print(result)
print('end')
if __name__ == "__main__":
main()
关键的步骤是调用pool.close()
和pool.join()
完成的过程后。否则,池不会释放。此外,您应该在主流程中通过将代码放入if __name__ == "__main__":
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句