python 线程池示例
时间: 2024-07-03 14:01:12 浏览: 100
创建一个线程池-2021护网行动面试题目
在Python中,`concurrent.futures`模块提供了一个线程池来并发执行任务。下面是一个简单的线程池示例:
```python
import concurrent.futures
# 定义一个耗时任务,这里我们只是简单地模拟一个耗时操作
def long_running_task(n):
import time
time.sleep(n)
return n * 2
# 创建一个线程池
with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:
# 提交任务到线程池
future_to_url = {executor.submit(long_running_task, n): n for n in range(10)}
# 等待所有任务完成并打印结果
for future in concurrent.futures.as_completed(future_to_url):
url = future_to_url[future]
try:
data = future.result()
print(f"Task {url} returned {data}")
except Exception as exc:
print(f"Exception raised for {url}: {exc}")
```
在这个例子中,我们创建了一个线程池,最大工作线程数设为5。然后提交了10个任务到线程池,每个任务都会运行`long_running_task`函数。`as_completed`函数会按顺序返回已完成的任务。
阅读全文