Java运行线程cykllu,等待线程完成

时间:2014-07-14 11:14:50

标签: java

我需要在四个并行线程的循环中运行,这将是最近处理和线程的事情,所以循环开始了Dasle 4并行线程。我试图实现,但循环开始超过4个线程。我想念是否有线程完成。你能告诉我吗?谢谢。

1 个答案:

答案 0 :(得分:0)

  1. 使用您的工作创建列表。
  2. 将您的作业包装在实现Runnable接口的某个类中。
  3. 创建将从队列
  4. 执行作业的线程

    类似的东西:

    // 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);
    
相关问题