+-
java – ExecutorService等待所有Future完成
我有下面的ExecutorService代码.

try{
    ExecutorService executor = Executors.newFixedThreadPool(5);
    List<Callable<String>> taskList = new ArrayList<Callable<String>>(5);
    for(int i=1;i<=5;i++){
        taskList.add(new SimpleTask());
    }

    List<Future<String>> list =  executor.invokeAll(taskList);
    executor.shutdown();
    System.out.println(list.get(0).get());
    System.out.println("Exit");
}catch(Exception e){
    e.printStackTrace();
}

class SimpleTask implements Callable<String> {
    @Override
    public String call() throws Exception {     
        return new Date().toString();
    }
}

我想知道list.get(0).get()会等待所有任务完成吗?

最佳答案
这里代码不会在执行list.get(0).get()语句时等待,而是执行者.invokeAll(taskList)语句,因为invokeAll()方法本身将等待所有线程的复杂化.

要了解更多Answer

点击查看更多相关文章

转载注明原文:java – ExecutorService等待所有Future完成 - 乐贴网