• 技术文章 >java >java基础

    java中CompletableFuture方式是什么

    小妮浅浅小妮浅浅2021-09-09 09:26:15转载3688

    说明

    1、JDK 8中引入了 CompletableFuture 类,实现了Future和CompletionStage接口.

    为异步编程提供了一些列方法,如supplyAsync、runAsync和thenApplyAsync等。

    2、功能是可以让两个或者多个进行运算来产生结果。

    实例

    /**
     * @author mghio
     * @since 2021-08-01
     */
    public class CompletableFutureDemo {
     
      public static CompletableFuture<String> doOneThing() {
        return CompletableFuture.supplyAsync(() -> {
          try {
            Thread.sleep(2000);
          } catch (InterruptedException e) {
            e.printStackTrace();
          }
          return "doOneThing";
        });
      }
     
      public static CompletableFuture<String> doOtherThing(String parameter) {
        return CompletableFuture.supplyAsync(() -> {
          try {
            Thread.sleep(2000);
          } catch (InterruptedException e) {
            e.printStackTrace();
          }
          return parameter + " " + "doOtherThing";
        });
      }
     
      public static void main(String[] args) throws ExecutionException, InterruptedException {
        StopWatch stopWatch = new StopWatch("CompletableFutureDemo");
        stopWatch.start();
     
        // 异步执行版本
        testCompletableFuture();
     
        stopWatch.stop();
        System.out.println(stopWatch);
      }
     
      private static void testCompletableFuture() throws InterruptedException, ExecutionException {
        // 先执行 doOneThing 任务,后执行 doOtherThing 任务
        CompletableFuture<String> resultFuture = doOneThing().thenCompose(CompletableFutureDemo::doOtherThing);
     
        // 获取任务结果
        String doOneThingResult = resultFuture.get();
     
        // 获取执行结果
        System.out.println("DoOneThing and DoOtherThing execute finished. result = " + doOneThingResult);
      }
     
    }

    以上就是java中CompletableFuture方式的介绍,希望对大家有所帮助。更多Java学习指路:Java基础

    本教程操作环境:windows7系统、java10版,DELL G3电脑。

    专题推荐:java completablefuture
    品易云
    上一篇:java异常编程FutureTask的介绍 下一篇:java桥接模式是什么

    相关文章推荐

    • java泛型算法如何实现• java无界通配符的使用场景• java上界通配符如何使用• java下界通配符的用法• java通配符的使用规则• java动态代理的特点• java中Cglib代理的使用• JavaScript二分查找算法的使用• java异常编程FutureTask的介绍

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网