##### concurrent.futures.wait() - `concurrent.futures.wait(fs, timeout=None, return_when=ALL_COMPLETED)` - 等待 `fs:iterable[Future]` 完成 - 最大等待 `timeout ` 秒 - `return_when` 指定此函数应在何时返回 - `concurrent.futures.FIRST_COMPLETED` 任意一个任务完成 - `concurrent.futures.FIRST_EXCEPTION` 任意一个任务异常 - `concurrent.futures.ALL_COMPLETED` 所有任务都完成 - 返回两个集合组成的元组, 第一个集合的名称为 done,包含在等待完成之前已完成的 future。 第二个集合的名称为 not_done,包含未完成的 future ```python from concurrent.futures import ThreadPoolExecutor from concurrent.futures import wait import time def task(name: str): """ 定义一个任务函数,接受一个名称参数,并打印任务执行的步骤。 :param name: str, 任务名称 :return: str, 任务完成消息 """ print(f'{name} 点餐\n', end='') time.sleep(1) print(f'{name} 拿餐\n', end='') return f'{name} complete' # 创建一个 ThreadPoolExecutor 对象,并使用 submit() 方法提交任务 with ThreadPoolExecutor() as execute: r1 = execute.submit(task, 'A') # 返回 Future r2 = execute.submit(task, 'B') done, not_done = wait([r1,r2]) # 等待 print('完成') ```