• 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是回调方法执行的结果。

  • 相关阅读:
    【从零开始的Java开发】2-8-2 CSS入门:CSS选择器、样式
    攻防世界 level3
    ASP.NET Core 6框架揭秘实例演示[37]:重定向的N种实现方式
    Python学习(4)-基础语法(模块)
    如何 dump 一个进程的 seccomp filters ?
    申报高企的条件你真的满足了吗?
    网格bfs,LeetCode 2684. 矩阵中移动的最大次数
    LeetCode Cookbook 树(2)
    buuctf-[Zer0pts2020]Can you guess it?
    Fastbot——基于model-based testing的APP 稳定性测试工具
  • 原文地址:https://blog.csdn.net/qq_46269365/article/details/126967265