Python线程池ThreadPoolExecutor
时间: 2024-07-11 14:01:10 浏览: 196
Python中的`ThreadPoolExecutor`是`concurrent.futures`模块中的一个重要工具,它是一个线程池执行器,用于异步执行任务。它可以在多个独立的线程中并行地处理一组可调度的任务,从而提高程序的并发性能和效率。
主要特点包括:
1. **线程池管理**:创建线程池后,你可以提交多个任务到这个池中,这些任务会被分配给线程池中的空闲线程执行。当线程完成任务后,它们会返回给线程池等待新的任务。
2. **资源复用**:线程池避免了频繁创建和销毁线程的成本,提高了资源利用率。
3. **控制并发**:可以通过设置线程池的最大大小(`max_workers`)来限制同时运行的任务数量,防止过多的并发导致系统资源耗尽。
4. **回调和将来值**:支持提供回调函数或生成`Future`对象,以便在任务完成后获取结果。
使用`ThreadPoolExecutor`的一般步骤如下:
```python
from concurrent.futures import ThreadPoolExecutor
# 创建一个线程池
with ThreadPoolExecutor(max_workers=5) as executor:
# 提交任务到线程池
futures = [executor.submit(func, *args, **kwargs) for func, args, kwargs in tasks]
# 等待所有任务完成
for future in futures:
result = future.result() # 获取任务的结果
```