线程池 ThreadPoolExecutor
44.9 线程池 ThreadPoolExecutor
concurrent.futures.ThreadPoolExecutor 管理线程池,避免手动创建大量 Thread。
executor.submit(函数, 参数) 提交任务;as_completed 按完成顺序取结果。
with ThreadPoolExecutor(max_workers=3) as ex: 退出时自动回收线程。
线程池批量任务
# ========================================
# 示例:ThreadPoolExecutor
# 说明:标准库线程池,适合一批独立 I/O 任务
# ========================================
from concurrent.futures import ThreadPoolExecutor, as_completed
import time
def task(n):
time.sleep(0.5) # 模拟网络等待
return n * n
with ThreadPoolExecutor(max_workers=3) as ex:
futures = [ex.submit(task, i) for i in range(6)]
for f in as_completed(futures):
print('结果', f.result())