我需要在四个并行线程的循环中运行,这将是最近处理和线程的事情,所以循环开始了Dasle 4并行线程。我试图实现,但循环开始超过4个线程。我想念是否有线程完成。你能告诉我吗?谢谢。
答案 0 :(得分:0)
类似的东西:
// This will run your jobs in threads
ExecutorService threadPoolExecutor = Executors.newFixedThreadPool(NUMBER_OF_THREADS);
// Adding new jobs to list
List<Job> processingList= Collections.synchronizedList(new ArrayList<Job>());
processingList.add(someJob1);
processingList.add(someJob2);
processingList.add(someJob3);
processingList.add(someJob4);
...
Runnable processor = new Runnable() {
public void run() {
// Run all jobs from List in threads
for (Job job : processingList) {
threadPoolExecutor.execute(job);
}
// wait till jobs are completed
boolean areJobsCompleted = false;
while(!areJobsCompleted) {
boolean areJobsCompleted = true;
for (Job job : processingList) {
areJobsCompleted = areJobsCompleted && job.isComplete();
}
}
}
};
Executors.newSingleThreadExecutor().execute(processor);