线程池 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())