并行化简单的 Python 循环
提供的 Python 循环在一个范围内迭代,并为每次迭代执行计算。虽然有多种方法可以并行化此循环,但该问题指定了对最简单方法的偏好。下面解释了使用多处理的两种简单方法。
使用多处理模块进行多处理
多处理模块提供了一个 ProcessPool 类来创建进程池。代码可以重写如下:
import multiprocessing pool = multiprocessing.Pool(4) out1, out2, out3 = zip(*pool.map(calc_stuff, range(0, 10 * offset, offset)))
这里创建了一个由四个进程组成的池。 pool.map() 方法将 calc_stuff 函数应用于可迭代中的每个元素,并返回一个结果元组。
使用并发.futures.ProcessPoolExecutor 进行多处理
或者,concurrent.futures模块提供了一个ProcessPoolExecutor类,简化了进程的创建和管理。代码变为:
from concurrent.futures import ProcessPoolExecutor with ProcessPoolExecutor() as pool: out1, out2, out3 = zip(*pool.map(calc_stuff, range(0, 10 * offset, offset)))
两种方法都在内部利用多处理模块,并提供了一种在 Linux 和其他操作系统中并行化循环的简单方法。
以上是如何使用多重处理轻松并行化简单的 Python 循环?的详细内容。更多信息请关注PHP中文网其他相关文章!