python 线程池使用
时间: 2023-08-17 22:09:42 浏览: 100
windows线程池,使用Windows自带的线程池api功能,比你写的线程池性能好得多
5星 · 资源好评率100%
Python中的线程池可以通过`concurrent.futures`模块来实现。下面是一个简单的例子,演示如何使用线程池:
```python
import concurrent.futures
# 定义一个简单的任务函数,用于在线程池中执行
def task(n):
return n * n
# 创建一个线程池,最大并发数为5
with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:
# 提交任务到线程池
futures = [executor.submit(task, i) for i in range(10)]
# 获取任务的返回结果
for future in concurrent.futures.as_completed(futures):
result = future.result()
print(result)
```
在上面的例子中,我们首先定义了一个任务函数`task`,它接收一个参数`n`并返回`n * n`的结果。然后,我们使用`ThreadPoolExecutor`创建了一个线程池,最大并发数设置为5。接下来,我们使用`submit`方法提交了10个任务到线程池,并将返回的`Future`对象保存在列表中。最后,我们使用`as_completed`函数来获取已完成的任务,并打印出结果。
需要注意的是,在使用线程池时,我们要确保任务函数是线程安全的,即多个线程同时执行该函数不会导致意外的结果。另外,使用线程池时要注意控制并发数,避免创建过多的线程导致系统资源耗尽。
阅读全文