如何使用ExecutorService等待所有线程完成?

我需要一次执行4个任务,如下所示:

ExecutorService taskExecutor=Executors.newFixedThreadPool(4);
而(…){
taskExecutor.execute(新建MyTask());
}
//…不知何故等待完成

一旦全部完成,如何通知我?现在我想不出比设置一些全局任务计数器更好的方法了,在每个任务结束时减少它,然后在无限循环中监视这个计数器变成0;或者获取一个未来列表,并在无限循环中为所有这些对象监视isDone。不涉及无限循环的更好解决方案是什么

谢谢

发表评论