java-JUC--异步回调
2021/6/9 14:51:32
本文主要是介绍java-JUC--异步回调,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
- 例子:CompletableFutureDemo
- 原理
-
- 实例
-
package com.model.threadpool; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; /** * @Description:测试类 * @Author: 张紫韩 * @Crete 2021/6/9 13:50 */ public class CompletableFutureDemo { public static void main(String[] args) throws ExecutionException, InterruptedException { CompletableFuture<Void> completableFuture = CompletableFuture.runAsync(() -> { System.out.println(Thread.currentThread().getName() + "异步开启一个线程,但是没有返回值"); }); completableFuture.get(); //结果,没有返回值的开启另一个线程 //1.异步回调 CompletableFuture<Integer> completableFuture1 = CompletableFuture.supplyAsync(() -> { //2.子线程执行任务。过一段时间,执行完毕后回将结果返回给主线程 System.out.println(Thread.currentThread().getName() + "异步开启一个线程,有返回值"); // int i=10/0; return 1024; }); //3.主线程接受子线程的返回值 Integer integer = completableFuture1.whenComplete((t, u) -> { //接受的返回值 System.out.println(Thread.currentThread().getName() + "返回值:" + t); //返回值正确时,正常返回 System.out.println(Thread.currentThread().getName() + "返回的信息:" + u); }).exceptionally(f -> { System.out.println(Thread.currentThread().getName() + "返回的信息:" + f); //返回值出错时,错误信息 return 404; }).get(); System.out.println(integer); } }
-
这篇关于java-JUC--异步回调的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28微服务架构中API版本控制的实践
- 2024-09-28AI给的和自己写的Python代码,都无法改变输入框的内容,替换也不行
- 2024-09-27Sentinel配置限流资料:新手入门教程
- 2024-09-27Sentinel配置限流资料详解
- 2024-09-27Sentinel限流资料:新手入门教程
- 2024-09-26Sentinel限流资料入门详解
- 2024-09-26Springboot框架资料:初学者入门教程
- 2024-09-26Springboot框架资料详解:新手入门教程
- 2024-09-26Springboot企业级开发资料:新手入门指南
- 2024-09-26SpringBoot企业级开发资料新手指南