【发布时间】:2023-04-10 19:54:01
【问题描述】:
我知道这个问题已经被问过很多次了,但答案并不适用。 这是 answer one 在 StackoverFlow 上使用多处理的并行循环:
import multiprocessing as mp
def processInput(i):
return i * i
if __name__ == '__main__':
inputs = range(1000000)
pool = mp.Pool(processes=4)
results = pool.map(processInput, inputs)
print(results)
此代码运行良好。但是如果我将范围增加到 1000000000,我的 16GB 内存将被完全填满,我得到 [Errno 12] 无法分配内存。 map 函数似乎启动了尽可能多的进程。如何限制并行进程的数量?
【问题讨论】:
标签: python-3.x python-multiprocessing