我需要一次执行4个任务,如下所示:
ExecutorService taskExecutor=Executors.newFixedThreadPool(4);
而(…){
taskExecutor.execute(新建MyTask());
}
//…不知何故等待完成
一旦全部完成,如何通知我?现在我想不出比设置一些全局任务计数器更好的方法了,在每个任务结束时减少它,然后在无限循环中监视这个计数器变成0;或者获取一个未来列表,并在无限循环中为所有这些对象监视isDone。不涉及无限循环的更好解决方案是什么
谢谢
基本上是一个执行服务您调用的shutdown()然后等待终止()
ExecutorService taskExecutor=Executors.newFixedThreadPool(4);
而(…){
taskExecutor.execute(新建MyTask());
}
taskExecutor.shutdown();
试一试{
taskExecutor.WaitiveTermination(Long.MAX_值,时间单位纳秒);
}捕捉(中断异常e){
...
}