具有 python 多处理的作业列表列表



我需要并行运行 100 个查询,但我没有足够的资源,所以我创建了一个包含 20 个子列表的列表,每个子列表包含 5 个进程。

现在我想连续运行作业列表。我解释更多:当前五个查询完成后,将启动后五个查询,依此类推......

我这样做了:

jobs_list = []
for sublist in list_all:
    jobs = []
    for cd in sublist:
        process = multiprocessing.Process(target=calc_zio, args=(cd,))
        jobs.append(process)
    jobs_list.append(jobs)
for l in jobs_list:
    for j in l:
        j.start()
for l in jobs_list:
    for j in l:
        j.join()

但我以 100% 的 CPU 运行

我错在哪里?

谢谢!

您需要

在开始下一个之前加入子列表。

jobs_list = []
for sublist in list_all:
    jobs = []
    for cd in sublist:
        process = multiprocessing.Process(target=calc_zio, args=(cd,))
        jobs.append(process)
    jobs_list.append(jobs)
for l in jobs_list:
    for j in l:
        j.start()
    for j in l:
        j.join()

相关内容

  • 没有找到相关文章

最新更新