【发布时间】:2018-02-20 01:55:41
【问题描述】:
我将此用作示例代码,但它被冻结了。我打开了任务管理器,查看了分配的资源。我可以看到运行代码前后进程数的变化,但我不明白为什么它会导致控制台冻结。 这仅在 Spyder 中发生。如果我从命令行调用脚本,它会正常运行。
import multiprocessing as mp
def doubler(number):
return number*2
if __name__=='__main__':
pool=mp.Pool(processes=3)
arglist=[1,2,3]
result=[pool.apply_async(doubler,(i,)) for i in arglist]
for res in result:
print(res.get())
我还使用了来自documentation 的示例代码,它引发了一个没有任何描述的 TimeoutError。 截图:TimeoutError
【问题讨论】:
-
另外,我应该提一下,您在此处发布的代码与您运行的代码不同。
-
请不要张贴截图或文本截图的链接。直接将其包含在您的问题中。
-
@coldspeed 我运行的代码位于我在此处发布的代码下方指向的链接中。这两个代码都在单独的 python 控制台中运行,但在 Spyder 中引发错误。
-
@mata 正式注明。
标签: python-3.x python-multiprocessing