java中的CompletableFuture方式是什么

发布时间:2021-08-04 16:07:33 作者:chen
来源:亿速云 阅读:115

这篇文章主要讲解了“java中的CompletableFuture方式是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“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中的CompletableFuture方式是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. Java8中CompletableFuture的使用方法
  2. Java8新的异步编程方式CompletableFuture实现

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:SQL Server 中怎么交叉表查询case

下一篇:如何解决某些HTML字符打不出来的问题

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》