python 多线程并行,仅分配5个线程,一个线程结束一个新的任务在原线程上跑
时间: 2023-11-28 14:17:51 浏览: 73
你可以使用 Python 中的 ThreadPoolExecutor 类来实现多线程并行处理,具体步骤如下:
1. 导入 concurrent.futures 模块中的 ThreadPoolExecutor 类:
```python
from concurrent.futures import ThreadPoolExecutor
```
2. 创建 ThreadPoolExecutor 对象,并指定最大线程数:
```python
executor = ThreadPoolExecutor(max_workers=5)
```
其中,max_workers 参数指定了线程池中最多同时运行的线程数,这里指定为 5。
3. 使用 submit() 方法提交任务到线程池中:
```python
future = executor.submit(func, *args)
```
其中,func 是要执行的函数,args 是 func 的参数。
4. 调用 future.result() 方法获取函数执行结果:
```python
result = future.result()
```
如果函数还未执行完成,result() 方法会阻塞等待函数执行完成后返回结果。
5. 使用 with 语句管理线程池,确保所有线程任务都执行完成后自动关闭线程池:
```python
with ThreadPoolExecutor(max_workers=5) as executor:
future = executor.submit(func, *args)
result = future.result()
```
在 with 语句块中提交任务和获取结果,任务执行完成后,线程池会自动关闭,释放系统资源。
以上是使用 ThreadPoolExecutor 实现多线程并行处理的基本步骤,如果需要在一个线程执行完成后立即开始新的任务,可以将这些任务依次提交到同一个线程池中即可。
阅读全文