Java学习(十五)-异步线程CompletableFuture
2021/11/23 14:10:10
本文主要是介绍Java学习(十五)-异步线程CompletableFuture,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、Future模式
Future模式是多线程开发中非常常见的一种设计模式。它的核心思想是异步调用。当我们需要调用一个函数方法时。如果这个函数执行很慢,那么我们就要进行等待。但有时候,我们可能并不急着要结果。因此,我们可以让被调用者立即返回,让他在后台慢慢处理这个请求。对于调用者来说,则可以先处理一些其他任务,在真正需要数据的场合再去尝试获取需要的数据。
2、CompletableFuture详解
2.1、创建CompletableFuture对象
1 public static CompletableFuture<Void> runAsync(Runnable runnable) 2 public static CompletableFuture<Void> runAsync(Runnable runnable, Executor executor) 3 public static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier) 4 public static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier, Executor executor)
- Asynsc表示异步,而supplyAsync与runAsync不同在与前者异步返回一个结果,后者是void
- 第二个函数第二个参数表示是用我们自己创建的线程池,否则采用默认的ForkJoinPool.commonPool()作为它的线程池.
- Supplier是一个函数式接口,代表是一个生成者的意思,传入0个参数,返回一个结果
2.2、获取异步线程返回值的两种方式:join和get方法**
- join()方法抛出的是uncheck异常(即未经检查的异常),不会强制开发者抛出,会将异常包装成CompletionException异常 /CancellationException异常,但是本质原因还是代码内存在的真正的异常
- get()方法抛出的是经过检查的异常,ExecutionException, InterruptedException 需要用户手动处理(抛出或者 try catch)
这篇关于Java学习(十五)-异步线程CompletableFuture的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南