这个问题有两个层面:
第一个层面,从业务上来看,某一个业务逻辑能拆分成多个任务,然后如何异步执行这些任务。
这个可以用CompletableFuture来解决,比如业务逻辑拆分
public class Main {
private static CompletableFuture task1() {
//CompletableFuture内部可以放业务逻辑,比如可以sleep 1s return CompletableFuture.completedFuture("task1");
}
private static CompletableFuture task2() {
return CompletableFuture.completedFuture("task2");
}
public static void main(String[] args) {
// thenCombine表示将两个CompletableFuture的结果“组合”起来 // 还可以看下CompletableFuture的thenXXX系列方法 task1().thenCombine(task2(), (res1, res2) -> {
// 组装结果 return res1 + "," + res2;
}).thenAccept(res -> {
// 输出最终结果 System.out.println(res);
}).join();
}
}
第一,这儿的CompletableFuture仅仅是一个逻辑上的接口,具体的实