zoukankan      html  css  js  c++  java
  • 异步回调

    异步回调

    Future 设计的初衷: 对将来的某个事件的结果进行建模

    image-20200804154802467

    /**
     * 异步调用: CompletableFuture
     * // 异步执行
     * // 成功回调
     * // 失败回调
     */
    public class Demo01 {
        public static void main(String[] args) throws ExecutionException, InterruptedException {
            // 没有返回值的 runAsync 异步回调
    //        CompletableFuture<Void> completableFuture = CompletableFuture.runAsync(()->{
    //            try {
    //                TimeUnit.SECONDS.sleep(2);
    //            } catch (InterruptedException e) {
    //                e.printStackTrace();
    //            }
    //            System.out.println(Thread.currentThread().getName()+"runAsync=>Void");
    //        });
    //
    //        System.out.println("1111");
    //
    //        completableFuture.get(); // 获取阻塞执行结果
    
            // 有返回值的 supplyAsync 异步回调
            // ajax,成功和失败的回调
            // 返回的是错误信息;
            CompletableFuture<Integer> completableFuture = CompletableFuture.supplyAsync(()->{
                System.out.println(Thread.currentThread().getName()+"supplyAsync=>Integer");
                int i = 10/0;
                return 1024;
            });
    
            System.out.println(completableFuture.whenComplete((t, u) -> {
                System.out.println("t=>" + t); // 正常的返回结果
                System.out.println("u=>" + u); // 错误信息:java.util.concurrent.CompletionException: java.lang.ArithmeticException: / by zero
            }).exceptionally((e) -> {
                System.out.println(e.getMessage());
                return 233; // 可以获取到错误的返回结果
            }).get());
    
            /**
             * succee Code 200
             * error Code 404 500
             */
        }
    }
    

    视频参考https://www.bilibili.com/video/BV1B7411L7tE
    上一篇:ForkJoin
    下一篇:JMM

  • 相关阅读:
    微信小程序
    js
    js
    uni
    uni/微信小程序
    uni/微信小程序
    ES6...扩展运算符(数组或类数组对象)
    微信小程序
    微信小程序
    玩转storm
  • 原文地址:https://www.cnblogs.com/junlinsky/p/13443333.html
Copyright © 2011-2022 走看看