You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现同时运行N个进程且不复用已结束进程?

实现无进程复用的固定并发数进程管理

要达成以下核心目标:

  • 并发运行进程,绝不复用已存在的进程:进程结束后立即创建新进程补充
  • 任何时刻同时运行的进程数量不超过N

multiprocessing.Pool无法满足需求,因为它会复用进程池中的进程。而那种“启动N个进程,等待全部结束后再启动下一批”的方案,会因为各进程运行时长差异较大,导致资源利用率低下,效果不理想。

以下是一个可行的基础解决方案:

from multiprocessing import Process, Queue
import random
import os
from time import sleep


def f(q):
    print(f"{os.getpid()} Starting")
    sleep(random.choice(range(1, 10)))
    q.put("Done")


def create_proc(q):
    p = Process(target=f, args=(q,))
    p.start()


if __name__ == "__main__":
    q = Queue()

    N = 5
    for n in range(N):
        create_proc(q)

    while True:
        q.get()
        create_proc(q)

内容的提问来源于stack exchange,提问作者chhenning

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 13:50:30