python - 多处理帮助。BrokenProcessPool 错误
问题描述
我正在尝试学习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 行,在 print(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:进程池中的一个进程在 future 正在运行或挂起时突然终止。
知道是什么原因造成的吗?
解决方案
您可能想检查未来是否已经完成:
if f1.done():
print(f1.result())
推荐阅读
- openstreetmap - Overpass API:向上递归和过滤
- html - 由于 MIME 类型(“text/html”)与 pug 和 express 不匹配(X-Content-Type-Options: nosniff),来自 [...] 的资源被阻止
- jenkins - 共享声明性管道:重载调用运算符,同时保持对管道步骤的访问
- c# - 显示对象时播放特定声音
- firebase - 无法从 firebase 数据库映射数据数组
- mysql - 如何通过排除 SQL 中的行来添加数字
- ios - IOS自动更新订阅通知处理
- c# - 如何将 SQL 表列中的值放入 C# 中的数组中?
- google-sheets - 谷歌表单根据在第一个字段中选择的内容从电子表格中加载数据
- apache-kafka - 为什么 Kafka 因日志目录错误而停止?