登录
首页 >  文章 >  java教程

java中的CompletableFuture怎么用

来源:亿速云

时间:2024-04-07 08:36:11 382浏览 收藏

哈喽!大家好,很高兴又见面了,我是golang学习网的一名作者,今天由我给大家带来一篇《java中的CompletableFuture怎么用》,本文主要会讲到等等知识点,希望大家一起学习进步,也欢迎大家关注、点赞、收藏、转发! 下面就一起来看看吧!

说明

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

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

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

实例

/**
 * @author mghio
 * @since 2021-08-01
 */
public class CompletableFutureDemo {
 
  public static CompletableFuture doOneThing() {
    return CompletableFuture.supplyAsync(() -> {
      try {
        Thread.sleep(2000);
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
      return "doOneThing";
    });
  }
 
  public static CompletableFuture 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 resultFuture = doOneThing().thenCompose(CompletableFutureDemo::doOtherThing);
 
    // 获取任务结果
    String doOneThingResult = resultFuture.get();
 
    // 获取执行结果
    System.out.println("DoOneThing and DoOtherThing execute finished. result = " + doOneThingResult);
  }
 
}

今天关于《java中的CompletableFuture怎么用》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于java,completablefuture的内容请关注golang学习网公众号!

声明:本文转载于:亿速云 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>