使用python多处理的作业列表列表

时间:2017-05-23 15:46:54

标签: python list multiprocessing

我需要并行运行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上运行

我哪里错了?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

 import java.util.Scanner;

 public class Prompter {

    public String promptForItem() {
    Scanner scanner = new Scanner(System.in);
    System.out.printf("---ADMIN SETTINGS---%n");
    System.out.printf("What type of item should go in the jar?  ");
    String item = scanner.nextLine();
    return item;
    }

    public String promptForSize() {
    Scanner scanner = new Scanner(System.in);
    System.out.printf("What is the maximum amount of %s?%n  ", 
                      item);
    String jarSize = scanner.nextLine();
    return jarSize;
    } 

}