Python 实现多线程池
时间: 2023-11-19 18:08:36 浏览: 110
Python中实现多线程池可以使用`ThreadPoolExecutor`类。`ThreadPoolExecutor`是一个线程池,可以在需要时自动创建线程,并将任务分配给这些线程。它可以在多个线程之间共享一个线程池,从而避免了频繁创建和销毁线程的开销。
下面是一个简单的示例代码:
```python
import concurrent.futures
# 定义需要并行执行的任务
def task(arg):
# 执行任务
print(arg)
# 创建线程池
with concurrent.futures.ThreadPoolExecutor(max_workers=4) as executor:
# 添加任务
for i in range(10):
executor.submit(task, i)
```
在上面的代码中,我们首先定义了一个名为`task`的函数作为需要并行执行的任务。然后,我们使用`ThreadPoolExecutor`创建一个名为`executor`的线程池,最大线程数为4。接着,我们使用`executor.submit()`方法向线程池中添加任务,该方法会返回一个`Future`对象,用于获取任务执行的结果。
在执行`executor.submit()`方法时,我们将`task`函数和一个参数`i`作为参数传入。这表示我们要执行的任务是`task(i)`,这个任务将在线程池中的某个空闲线程中执行。
在Python 3.2及以上版本中,`concurrent.futures`模块也提供了`ProcessPoolExecutor`类,用于在多个进程之间共享一个进程池。使用方法和`ThreadPoolExecutor`类似,只需将`ThreadPoolExecutor`替换为`ProcessPoolExecutor`即可。
阅读全文