当前位置: 首页> 娱乐> 八卦 > CompletableFuture 开启异步线程,主线程不等待

CompletableFuture 开启异步线程,主线程不等待

时间:2025/7/14 7:42:49来源:https://blog.csdn.net/qq_41611676/article/details/141902739 浏览次数:0次

 在Java中CompletableFuture用于异步编程,异步编程是编写非阻塞的代码,运行的任务在一个单独的线程,与主线程隔离,并且会通知主线程它的进度,成功或者失败。

在这种方式中,主线程不会被阻塞,不需要一直等到子线程完成。主线程可以并行的执行其他任务。

使用这种并行方式,可以极大的提高程序的性能。

一般应用场景:在业务开发中可能会遇到调用多个第三方接口,同时要求主流程不被阻塞。

public static void main(String[] args) throws Exception {// 开启一个线程(无返回值)CompletableFuture<Void> voidCompletableFuture = CompletableFuture.runAsync(() -> {try {TimeUnit.SECONDS.sleep(3);} catch (InterruptedException e) {throw new RuntimeException(e);}});// 开启一个线程(有返回值)CompletableFuture<Integer> integerCompletableFuture = CompletableFuture.supplyAsync(() -> {try {Thread.sleep(3);return 1;} catch (InterruptedException e) {throw new RuntimeException(e);}});{// do things}// 等待异步现成执行完CompletableFuture.allOf(integerCompletableFuture).get();// 等待多个异步现成执行完CompletableFuture.allOf(voidCompletableFuture,integerCompletableFuture).get();// 打印异步结果System.out.println(integerCompletableFuture.get());System.out.println("over");}

 

关键字:CompletableFuture 开启异步线程,主线程不等待

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: