【发布时间】:2021-03-28 00:29:16
【问题描述】:
我有一个函数可以向ThreadPoolExecutor 提交多个任务并返回每个提交创建的期货列表:
def submit_tasks() -> [Future]:
futures = []
for i in range(10):
future = executor.submit(Task())
futures.append(future)
return futures
def submit() -> Future:
futures = submit_tasks()
# I would like this function to return a single Future that clients can use to check
# whether all futures in the list have completed. How to do that?
我使用的是 Python 3.8
我希望这个函数返回一个 Future,客户可以使用它来检查列表中的所有 Future 是否都已完成。该怎么做?
【问题讨论】:
-
在每个future上使用
add_done_callback,并在列表中的所有future都完成后完成单个future? -
这就是我的想法,但我如何创建一个可以“手动”完成的单一未来?这就是我遇到问题的部分。如果您可以将此作为答案发布,我可以接受。谢谢!
-
Future.set_result? -
我不认识,这就是我问的原因哈哈
-
您是否尝试过使用
Future.set_result?
标签: python python-3.x concurrency concurrent.futures