10.6.7 上下文管理器
执行器会与上下文管理器合作,并发地运行任务并等待它们都完成。当上下文管理器退出时,会调用执行器的shutdown()方法。
from concurrent import futures
def task(n):
print(n)
with futures.ThreadPoolExecutor(max_workers=2) as ex:
print('main: starting')
ex.submit(task,1)
ex.submit(task,2)
ex.submit(task,3)
ex.submit(task,4)
print('main: done')
离开当前作用域时如果要清理线程或进程资源,那么用这种方式使用执行器就很有用。
运行结果: