一、进程池概述
进程池(ProcessPoolExecutor)是 Python 中用于并行执行任务的强大工具,尤其适合 CPU 密集型操作。与传统的多进程编程相比,它提供了更简单、更高级的接口。
适用场景:
- CPU 密集型任务(数学计算、图像处理等)
- 需要并行处理独立任务的情况
- 需要限制并发进程数量的场景
- 需要获取任务执行结果的场景
二、基本使用
from concurrent.futures import ProcessPoolExecutor
import time
# CPU 密集型计算函数
def calculate_square(n):
print(f"计算 {n} 的平方...")
time.sleep(1) # 模拟耗时计算
return n * n
# 使用进程池
with ProcessPoolExecutor(max_workers=4) as executor:
# 提交任务到进程池
future1 = executor.submit(calculate_square, 5)
future2 = executor.submit(calculate_square, 8)
# 获取任务结果
print(f"5 的平方 = {future1.result()}")
print(f"8 的平方 = {future2.result()}")
三、核心方法详解
1. 任务提交
map(): 批量提交任务
results = executor.map(func, iterable, timeout=None)
submit(): 提交单个任务
future = executor.submit(func, *args, **kwargs)
2. 结果处理
as_completed(): 按照完成顺序获取结果
from concurrent.futures as_completed
futures = [executor.submit(calculate_square, i) i (, )]
future as_completed(futures):
()


