• Android之CompletableFuture一异步编程常用方法


    一、常用方法

    1、获取结果的方法
    (1)创建CompletableFuture
    (2)future.get(…)等待结果,可设置超时的时间,该方法会阻塞,拿到结果后才进行下一步,future.complete(…)方法赋值;
    (3)join(…)方法获取结果不会阻塞。

    2、创建异步任务的方法
    (1)supplyAsync执行CompletableFuture任务,有返回值
    (2)runAsync执行CompletableFuture任务,没有返回值。

    3、任务异步回调

    (1)thenRun方法是做完第一个任务后,再做第二个任务。某个任务执行完成后,执行回调方法;但是前后两个任务没有参数传递,第二个任务也没有返回值;

           thenRunAsync执行第二个任务时,则第一个任务使用的是你自己传入的线程池,第二个任务使用的是ForkJoin线程池。
    
    • 1

    (2)thenApply方法表示,第一个任务执行完成后,执行第二个回调方法任务,会将该任务的执行结果,作为入参,传递到回调方法中,并且回调方法是有返回值的。

           thenApplyAsync......
    
    • 1

    (3)thenAccept方法表示,第一个任务执行完成后,执行第二个回调方法任务,会将该任务的执行结果,作为入参,传递到回调方法中,但是回调方法是没有返回值的。

           thenAcceptAsync......
    
    • 1

    (4)thenApply方法表示,第一个任务执行完成后,执行第二个回调方法任务,会将该任务的执行结果,作为入参,传递到回调方法中,并且回调方法是有返回值的。

           thenApplyAsync......
    
    • 1

    (5)whenComplete方法表示,某个任务执行完成后,执行的回调方法,无返回值;并且whenComplete方法返回的CompletableFuture的result是上个任务的结果。

    (6)exceptionally方法表示,某个任务执行异常时,执行的回调方法;并且有抛出异常作为参数,传递到回调方法。

    (7)handle方法表示,某个任务执行完成后,执行回调方法,并且是有返回值的;并且handle方法返回的CompletableFuture的result是回调方法执行的结果。

  • 相关阅读:
    【Docker项目实战】使用Docker安装Blossom 笔记应用
    野火开发板使用FlyMcu一键ISP下载时
    黑马Java笔记第九讲—ArrayList集合和学生管理系统
    docker安装postgresSQL和设置自定义数据目录
    记一次服务CPU过高排查
    Postern配置HTTP和HTTPS的步骤
    http和https的区别以及常见面试题
    【牛客刷题】——Python入门 06 条件语句
    sql注入基本概念
    QT笔记——qInstallMessageHandler消息日志
  • 原文地址:https://blog.csdn.net/qq_46269365/article/details/126967265