java中CompletableFuture方式是什么

美女程序员鼓励师

说明

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方式是什么 的全部内容, 来源链接: utcz.com/z/545574.html

回到顶部