我需要并行运行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上运行
我哪里错了?
谢谢!
答案 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;
}
}