CompletableFuture异步编排示例

Posted 小志的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CompletableFuture异步编排示例相关的知识,希望对你有一定的参考价值。

目录

一、开启异步编程

2.1、runAsync:无入参、无返回值

  • 源码

  • 示例代码

    package com.xz.thread.day1;
    
    import java.util.concurrent.*;
    /**
     * @description: 开启异步编程
     *              runAsync方法:无入参、无返回值
     * @author: xz
     * @create: 2022-08-21
     */
    public class Test1 
        /**
         * 定义线程池
         */
        public static ExecutorService service = Executors.newFixedThreadPool(3);
    
        public static void main(String[] args) 
            System.out.println("main start ...");
    
            CompletableFuture<Void> future = CompletableFuture.runAsync(() -> 
                System.out.println("开启异步任务...,runAsync方法,无入参、无返回值");
            , service);
    
            System.out.println("main end ...");
        
    
    
    
  • 输出结果

  • 由上图输出结果可知,主线程和异步线程可异步执行。并且异步线程无入参、无返回值。

2.2、supplyAsync :无入参,可以获取返回值

  • 源码

  • 示例代码

    package com.xz.thread.day1;
    
    import lombok.SneakyThrows;
    import java.util.concurrent.*;
    /**
     * @description: 开启异步编程
     *               supplyAsync方法:无入参,可以获取返回值
     * @author: xz
     * @create: 2022-08-21
     */
    public class Test2 
        /**
         * 定义线程池
         */
        public static ExecutorService service = Executors.newFixedThreadPool(3);
    
        @SneakyThrows
        public static void main(String[] args) 
            System.out.println("main start ...");
    
            CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> 
                System.out.println("开启异步任务...");
                return "hello world!";
            , service);
    
            System.out.println("获取异步任务返回值:" + future.get());
            System.out.println("main end ...");
        
    
    
  • 输出结果

  • 由上图输出结果可知,主线程和异步线程可异步执行。并且异步线程无入参,可以获取返回值。

以上是关于CompletableFuture异步编排示例的主要内容,如果未能解决你的问题,请参考以下文章

CompletableFuture异步编排(线程串行化代码示例)

CompletableFuture异步编排(线程串行化代码示例)

CompletableFuture异步编排(线程串行化代码示例)

CompletableFuture异步编排示例

CompletableFuture异步编排(开启异步编程代码示例)

CompletableFuture异步编排(多任务组合)