• 技术文章 >java >java基础

    java中CompletableFuture方式是什么

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

    说明

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

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

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

    实例

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    /**

     * @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异常编程FutureTask的介绍

    全部评论我要评论

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

  • 取消发布评论
  • 

    Python学习网