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异步编排(线程串行化代码示例)