python线程池的使用
时间: 2023-10-24 14:08:51 浏览: 117
python线程池threadpool使用篇
Python线程池使用方法如下:
1. 导入线程池模块
```python
from concurrent.futures import ThreadPoolExecutor
```
2. 创建线程池对象
```python
executor = ThreadPoolExecutor(max_workers=5)
```
其中,`max_workers`参数指定线程池中最多同时运行的线程数。
3. 提交任务到线程池
```python
future = executor.submit(func, arg1, arg2, ...)
```
其中,`func`为要执行的函数,`arg1`、`arg2`等为函数的参数。
`submit`方法返回一个`Future`对象,可以使用`result()`方法获取函数执行的结果。
4. 关闭线程池
```python
executor.shutdown()
```
在所有任务执行完成后,需要调用`shutdown()`方法关闭线程池。
示例代码:
```python
from concurrent.futures import ThreadPoolExecutor
import time
def task(name):
print(f"{name} start")
time.sleep(2)
print(f"{name} end")
return name
executor = ThreadPoolExecutor(max_workers=5)
futures = []
for i in range(10):
future = executor.submit(task, f"task-{i}")
futures.append(future)
for future in futures:
result = future.result()
print(f"result: {result}")
executor.shutdown()
```
以上代码创建了一个最多同时运行5个线程的线程池,并提交10个任务到线程池中,每个任务都会执行2秒钟,最终输出每个任务的执行结果。
阅读全文