如何使用多进程加速循环
时间: 2023-05-28 16:03:20 浏览: 116
使用多进程可以提高循环的执行速度,主要步骤如下:
1. 导入 multiprocessing 模块
```python
import multiprocessing
```
2. 创建进程池
```python
pool = multiprocessing.Pool(processes=num_process)
```
其中,num_process 是进程池中进程的数量。
3. 将循环中的任务分配给进程池
```python
for i in range(num_task):
pool.apply_async(func, args=(i,))
```
其中,func 是需要执行的函数,args 是传递给函数的参数。
4. 关闭进程池
```python
pool.close()
```
5. 等待所有进程执行完毕
```python
pool.join()
```
完整代码示例:
```python
import multiprocessing
def func(i):
# 循环中需要执行的任务
pass
if __name__ == '__main__':
num_task = 1000
num_process = 4
pool = multiprocessing.Pool(processes=num_process)
for i in range(num_task):
pool.apply_async(func, args=(i,))
pool.close()
pool.join()
```
注意,上述代码中的 func 函数需要满足以下条件:
- 不能使用全局变量,因为多个进程之间共享内存空间;
- 如果需要返回结果,可以使用 multiprocessing.Queue 或 multiprocessing.Manager 等多进程通信方式。
阅读全文