1.场景:创建异步任务,异步回调,多个任务处理
2.基础用法
创建异步任务:
- runAsync方法不支持返回值。
- supplyAsync可以支持返回值。
获取执行结果:
3.example
public static void main(String[] args) throws ParseException, ExecutionException, InterruptedException {
CompletableFuture<String> future = CompletableFuture.supplyAsync(()->{
try{
Thread.sleep(1000L);
return "test";
} catch (Exception e){
return "failed test";
}
});
future.complete("manual test");
System.out.println(future.get());
CompletableFuture<String> future1 = CompletableFuture.supplyAsync(()->{
System.out.println("compute test");
return "test";
});
String result = future1.join();
System.out.println("get result1: " + result);
CompletableFuture<Void> future2 = CompletableFuture.runAsync(()->{
System.out.println("compute test");
});
System.out.println("get result2: " + future2.join());
}
参考博客:CompletableFuture 详解(一):基本概念及用法_tongtest的博客-CSDN博客_completablefuture 详解