执行器服务,如何等待所有任务完成
等待所有任务完成的最简单方法是什么?我的任务主要是计算,所以我只想运行大量的作业 - 每个内核一个。现在我的设置如下所示: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
包含数万种元素。我应该使用其他方法吗?我正在寻找尽可能简单的东西