您当前的位置: 首页 > 

小志的博客

暂无认证

  • 0浏览

    0关注

    1217博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

小志的博客 发布时间:2022-08-21 21:38:13 ,浏览量:0

目录
    • 一、开启异步编程
      • 2.1、runAsync:无入参、无返回值
      • 2.2、supplyAsync :无入参,可以获取返回值

一、开启异步编程 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 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 future = CompletableFuture.supplyAsync(() -> {
                System.out.println("开启异步任务...");
                return "hello world!";
            }, service);
    
            System.out.println("获取异步任务返回值:" + future.get());
            System.out.println("main end ...");
        }
    }
    
  • 输出结果 在这里插入图片描述

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

关注
打赏
1661269038
查看更多评论
立即登录/注册

微信扫码登录

0.0420s