/**
* @author
* @date 2023/1/6 20:52
* CompletableFuture 同步调用与异步调用
*/
public class CompletableFutureDemo {
public static void main(String[] args) throws ExecutionException, InterruptedException {
//同步调用
CompletableFuture<Void> completableFuture1 = CompletableFuture.runAsync(()->{
System.out.println(Thread.currentThread().getName()+" completableFuture1");
});
completableFuture1.get();
//异步调用
CompletableFuture<Integer> completableFuture2 = CompletableFuture.supplyAsync(()->{
System.out.println(Thread.currentThread().getName()+" completableFuture2");
int i = 10/0;
return 1024;
});
completableFuture2.whenComplete((t,u)->{
//异步返回值
System.out.println("-----------t="+t);
//异步异常
System.out.println("-----------u="+u);
}).get();
}
}
多线程与锁(十九)之CompletableFuture 同步调用与异步调用
最新推荐文章于 2024-11-01 15:20:51 发布
该代码示例展示了Java中的CompletableFuture如何进行同步和异步操作。同步调用使用runAsync执行无返回值的任务,而异步调用使用supplyAsync执行有返回值的任务,并通过whenComplete处理结果和异常。在异步调用中,当发生除零异常时,它被捕获并在完成时处理。
1292

被折叠的 条评论
为什么被折叠?



