Java Executors:如果我们已经调用了invokeAll,是否应该调用awaitTermination

时间:2017-06-25 01:41:29

标签: java multithreading future executorservice executor

我最近看到一些代码在调用invokeAll之后调用executorservice awaitTermination。据我所知,invokeAll是一个阻塞调用,等待提交完成的所有任务。因此,在invokeAll完成后,我们可以假设所有任务都已完成或超时。然后我的问题是添加awaitTermination是什么是一个很好的理由,之后还说它等待任务完成或超时?

以下是代码段

List<Future<String>> futures = executorService.invokeAll(collection, 100, TimeUnit.SECONDS); executorService.shutdown(); executorService.awaitTermination(100L, TimeUnit.SECONDS);

0 个答案:

没有答案