executor.shutdown说明中的'method return'是什么意思?该方法是否有返回值?
concurrent.futures.Executor.shutdown 相关疑问解答
1. 文档中「方法返回」的含义
文档里描述的“该方法将返回”指的是shutdown()函数执行完毕,将执行控制权交还给调用它的上层代码。直白来说:你写的下一行紧跟shutdown()调用的代码,必须等shutdown返回后才会运行。
比如当wait=True时,你如果写:
executor.shutdown(wait=True) print("shutdown执行完成")
第二行print语句必须等所有待处理任务跑完、执行器资源释放后才会执行;如果wait=False,print会在调用shutdown后立刻执行,不需要等任务完成。
2. shutdown方法的返回值
executor.shutdown()没有任何有实际意义的返回值,无论参数如何配置,执行后都会返回Python的空值None。
3. 示例代码的对应逻辑
你提供的示例使用了ThreadPoolExecutor的上下文管理器(with语句),在with代码块执行结束时,会隐式自动调用shutdown(wait=True):
import concurrent.futures import time def pafter(t): time.sleep(t) print('Hi') # 修正原代码缺失的右引号 with concurrent.futures.ThreadPoolExecutor(5) as e: e.submit(pafter, 2) print('With returned')
运行这段代码的顺序是:
- 提交
pafter(2)任务,任务进入等待执行状态 - with块执行结束,触发自动调用
shutdown(wait=True) shutdown等待2秒,直到pafter任务执行完成打印Hi、释放线程资源后才返回- with块退出,执行下一行打印
With returned
内容的提问来源于stack exchange,提问作者Sudtribune
相关产品推荐
相关产品推荐

