我有以下代码哈希:
public class MyCallable implements Callable {
@Override
public Long call() throws Exception {
// Do stuff...
}
}
public class MyController {
private ExecutorService executor = Executos.newCachedTreadPool();
public Long concurrentDoStuff() {
List workers = makeWorkers();
List allResults = new ArrayList();
for(MyCallable worker : workers) {
Future workerResults = executor.submit(worker);
try {
allResults.add(workerResults.get());
} catch(InterruptedException ie) {
// Handle...
} catch(ExecutionException ee) {
// Handle...
}
}
// Question: how do I pause here and wait for all workers to finish?
}
}
在for循环之后,我想等待所有工人完成任务以继续进行.什么是最好/最安全/最有效的方法?提前致谢!