线程池案例python
时间: 2025-05-07 10:09:05 浏览: 13
### Python 线程池 示例代码
以下是基于 `concurrent.futures` 模块中的 `ThreadPoolExecutor` 的一个简单示例,用于演示如何创建和使用线程池:
```python
import concurrent.futures
import time
def task(n):
"""模拟耗时任务"""
print(f"Task {n} is starting...")
time.sleep(2) # 模拟任务执行时间
result = n * n
print(f"Task {n} completed with result: {result}")
return result
if __name__ == "__main__":
num_tasks = 5
results = []
# 使用 ThreadPoolExecutor 创建线程池
with concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:
futures = [executor.submit(task, i) for i in range(num_tasks)]
# 获取任务的结果
for future in concurrent.futures.as_completed(futures):
try:
result = future.result()
results.append(result)
except Exception as e:
print(f"An error occurred: {e}")
print("All tasks are done.")
print(f"Results collected: {results}")
```
上述代码展示了如何通过 `ThreadPoolExecutor` 来管理多个并发任务。其中设置了 `max_workers=3` 参数,表示最多允许同时运行三个线程[^4]。
---
#### 关于线程池的核心概念
线程池是一种优化机制,旨在减少频繁创建和销毁线程带来的开销。它通过预先创建一组工作线程并将其放入池中待命,当有新任务提交时分配给空闲线程处理[^1]。这种方式能够显著提升程序性能,尤其是在高并发场景下。
在实际应用中,可以通过调整 `max_workers` 参数来控制线程的数量,从而平衡 CPU 负载与内存消耗之间的关系。
---
#### 高级功能扩展
如果需要更复杂的线程池行为,比如动态调整线程数或者自定义调度策略,则可能需要借助第三方库(如 `billiard` 或者手动实现)。不过对于大多数应用场景而言,标准库提供的 `ThreadPoolExecutor` 已经足够强大[^2]。
---
阅读全文
相关推荐


















