python并行运行多个函数
时间: 2024-10-16 07:03:42 浏览: 10
python开启多个子进程并行运行的方法
Python通过多种库实现了并行计算,其中最常用的是`multiprocessing`、`concurrent.futures`以及`joblib`。以下是三种方法的简要介绍:
1. `multiprocessing`: 提供了`Process`和`Pool`等进程池,可以创建独立的子进程来并发执行任务。例如,你可以创建一个进程池然后将函数提交给它:
```python
from multiprocessing import Pool
def func(x):
# 函数体...
if __name__ == '__main__':
with Pool(processes=4) as pool:
results = pool.map(func, range(10))
```
2. `concurrent.futures`: 这是一个高级接口,包含`ThreadPoolExecutor`(基于线程)和`ProcessPoolExecutor`(基于进程)。示例如下:
```python
import concurrent.futures
def func(x):
# 函数体...
with concurrent.futures.ThreadPoolExecutor() as executor:
results = list(executor.map(func, range(10)))
```
3. `joblib`: 如果你的函数适合于数据分块处理,`joblib`的`Parallel`和`delayed`函数组合非常高效:
```python
from joblib import parallel_backend, delayed
@parallel_backend('threading')
def process_data(data):
# 函数体...
data = ... # 列表或其他序列
results = parallel(delayed(process_data)(chunk) for chunk in split_list(data))
```
阅读全文