我想在多进程中调用函数时限制进程我该怎么做?

时间:2017-04-24 12:24:07

标签: python

所以这是交易

min_range = 1602
max_range = 9999999
for image in range(min_range,max_range):   
    p1=multiprocessing.Process(target=process,args=image,))
    p1.start()

我有很多这样的程序要运行,我不能同时运行它们会破坏我的系统。我无法使用

一次运行每个流程
    p1.join()

所以我想要做的就是运行20个进程并等到它们结束后,这20个进程完成后再运行20个。但是我不知道如何实现这一点请帮助我....谢谢:)

1 个答案:

答案 0 :(得分:2)

multiprocessing.Process适用于您想要自己定义/启动/控制所有进程的情况。

您的案例看起来更像是multiprocessing.Pool的用例:您定义了一个并行进程池,将其处理为函数和参数(列表),并将工作自动分配给进程。

旁注:为什么你想要20个并行流程?如果要进行多处理以更好地使用CPU,并行进程的数量应为< =核心数(如果您有多线程CPU,则为线程)