14
ExecutorService,如何等待所有任务完成
等待所有任务ExecutorService完成的最简单方法是什么?我的任务主要是计算,因此我只想运行大量的作业-每个内核上一个。现在,我的设置如下所示: ExecutorService es = Executors.newFixedThreadPool(2); for (DataTable singleTable : uniquePhrases) { es.execute(new ComputeDTask(singleTable)); } try{ es.wait(); } catch (InterruptedException e){ e.printStackTrace(); } ComputeDTask实现可运行。这似乎是正确执行的任务,但代码崩溃上wait()用IllegalMonitorStateException。这很奇怪,因为我玩了一些玩具示例,而且看起来很奏效。 uniquePhrases包含数以万计的元素。我应该使用其他方法吗?我正在寻找尽可能简单的东西