我正在尝试学习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())
相当简单,我知道。但是,由于某种原因,当我尝试运行它时,出现以下错误。
回溯(最近一次调用(:
文件 ",第 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
损坏的进程池:进程池中的进程已终止 突然,当未来正在运行或悬而未决时。
知道是什么原因造成的吗?
您可能想检查未来是否已经完成:
if f1.done():
print(f1.result())