public static void main(String[] args) {
// 创建线程池,500 个线程数
ExecutorService es = ThreadUtils.getInstance("approveProcessForBatch", 500);
Map[I]> futureMap = new HashMap(SystemConstant.INITIAL_CAPACITY);
for (int i = 0; i delay5s(""));
}
System.out.println("开始执行时间:" + DateTime.now());
for (int i = 0; i future = es.submit(() -> delay5s("当前任务" + finalI));
futureMap.put(finalI, future);
}
futureMap.keySet().forEach(i -> {
try {
// v 是当前任务名称
Object v = futureMap.get(i).get();
System.out.println(v + ",完成时间:" + DateTime.now());
} catch (ExecutionException | InterruptedException e) {
throw new BusinessException(e);
}
});
}
目前设置了 500 个线程数,会在 5s 之后将 100 个任务全部完成,假如我只设置 9 个,那预计需要 250/9 * 5s 的时间,导致这个现象的原因是啥?