python线程池实现
时间: 2024-09-16 13:00:14 浏览: 39
Python的线程池是一种并发处理机制,用于管理和控制一组工作线程。它通过预先创建一定数量的工作线程,并维护一个任务队列,有效地减少了频繁地创建和销毁线程带来的开销。`concurrent.futures`模块中的ThreadPoolExecutor是一个常用的线程池实现。
以下是如何使用`ThreadPoolExecutor`的基本步骤:
1. **导入所需模块**:
```python
from concurrent.futures import ThreadPoolExecutor
```
2. **创建线程池对象**:
```python
executor = ThreadPoolExecutor(max_workers=5) # 创建最多5个线程
```
3. **提交任务到线程池**:
```python
def worker_function(data):
# 这里是你的业务逻辑
pass
futures = [executor.submit(worker_function, task_data) for task_data in tasks]
```
4. **等待所有任务完成并获取结果**:
```python
results = [future.result() for future in futures]
```
或者你可以使用`as_completed`函数按顺序获取结果,而不是阻塞主线程直到所有任务结束:
```python
for future in futures:
result = future.result()
# 处理结果
```
5. **关闭线程池**:
```python
executor.shutdown(wait=True) # 等待所有任务完成后关闭
```
阅读全文