// 封装查询数据结果集
List<Map<String, Object>> result = new ArrayList<>();
try {
// 启动所有线程任务Future获取结果
List<Future<List>> futures = executorService.invokeAll(tasks);
if (futures != null && futures.size() > 0) {
// 迭代结果
for (Future<List> future : futures) {
result.addAll(future.get());
}
}
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
} finally {
corePoolSize = 20;
// 关闭线程池
executorService.shutdown();
while (true){
if (executorService.isTerminated()){
log.info("任务已完成");
break;
}
}
}
return result;
如:100个线程执行后,其中一个future为null,但是线程任务确实执行了
FutureTask里把异常抛出来看看