CompletableFuture用法和常用Api
时间: 2024-07-04 21:00:34 浏览: 5
`CompletableFuture`是Java 8中引入的一个并发库,用于处理异步操作和并行计算。它提供了一种更为简洁、强大的方式来处理非阻塞代码,尤其是在处理回调地狱时非常有用。以下是`CompletableFuture`的一些主要用法和常见API:
1. **创建Future对象**:
- `supplyAsync()`方法可以异步地执行一个任务,返回一个`CompletableFuture`。
- `submit()`方法接受一个Runnable或Callable任务,并返回一个`Future`。
2. **链式调用(方法组合)**:
- 使用`.thenApply()`, `.thenAccept()`, `.thenCompose()`等方法,当前任务完成后执行下一个任务。
- `.thenCombine()`用于结合两个`CompletableFuture`的结果。
3. **异常处理**:
- `.exceptionally()`处理可能抛出的异常,返回一个新的`CompletableFuture`。
- `.handle()`处理正常结果和异常。
4. **同步操作**:
- `.get()`会阻塞直到任务完成并获取结果,不推荐在高并发环境中使用。
- `join()`方法也同步等待任务完成。
5. **并行和串行组合**:
- `.allOf()`等待多个`CompletableFuture`全部完成。
- `.anyOf()`等待其中一个完成。
- `.sequential()`将多个任务顺序执行。
6. **信号完成**:
- `complete()`手动设置结果。
- `completeExceptionally()`手动设置异常。
7. **取消任务**:
- 可以通过`Future`的`cancel()`方法取消任务。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)