CompletableFuture 用于for循环开启异步,并且等全部执行完毕,再走后续流程。

1,867 阅读1分钟

CompletableFuture.runAsync 是开启异步线程并且是无返回值。 CompletableFuture.allOf().join 等所有循环执行完毕再走主线程。

//线程池使用
@Autowired
@Qualifier("asyncServiceExecutor")
private Executor executor;
/*业务代码,add到list*/
CompletableFuture.allOf(list.stream().map(async ->   CompletableFuture.runAsync(() -> {

/*业务代码*/

}, executor)).toArray(CompletableFuture[]::new)).join();