List<CompletableFuture<Void>> futureList = new ArrayList<>();
for (int i = 0; i < 1000; i++) {
futureList.add(CompletableFuture.runAsync(() -> {
System.out.println("Thread id=" + Thread.currentThread().getId());
}, ThreadPools.commonExecutor));
}
//等待所有任务完成
CompletableFuture.allOf(futureList.toArray(new CompletableFuture[0])).join();
自行修改for循环的对象,以及runAsync方法的具体处理逻辑。
注意:
ThreadPools.commonExecutor是自定义的线程池,也可以不传这个参数,但是建议传,具体原因见:CompletableFuture使用之双核以下CPU要自定义线程池
ThreadPools工具类见:线程池通用管理类ThreadPools