【发布时间】:2020-01-03 15:26:49
【问题描述】:
我正在尝试学习python中多处理的基础知识,并在网上找到了我想练习的以下示例。
import concurrent.futures
import time
def do_something(seconds):
print(f' Sleeping {seconds} seconds')
time.sleep(seconds)
return f'Done Sleeping {seconds}'
with concurrent.futures.ProcessPoolExecutor() as executor:
f1 = executor.submit(do_something, 1)
print(f1.result())
很简单,我知道。但是,由于某种原因,当我尝试运行此程序时,出现以下错误。
Traceback(最近一次调用最后一次):
文件“”,第 19 行,在 打印(f1.result())
文件“C:\Anaconda3\lib\concurrent\futures_base.py”,第 432 行,在 结果 返回 self.__get_result()
文件“C:\Anaconda3\lib\concurrent\futures_base.py”,第 384 行,在 __get_result 引发 self._exception
BrokenProcessPool:进程池中的一个进程被终止 在未来正在运行或未决时突然发生。
知道是什么原因造成的吗?
【问题讨论】:
-
我只能想象
print(f1.result())引发了异常,例如因为f1没有正确类型的.result,或者对.result()的调用崩溃了。
标签: python multiprocessing python-multiprocessing