CompletableFuture用法
时间: 2023-11-03 16:59:48 浏览: 85
CompletedFuture
CompletableFuture是jdk8的新特性,它实现了CompletionStage接口和Future接口,提供了一种更加方便和顺畅的方式来处理多任务的协同工作。使用CompletableFuture可以实现异步编程、流式处理和多个Future的组合处理。
具体使用CompletableFuture的方法如下:
1. 使用runAsync方法创建异步任务,该方法没有返回值。
示例代码:
```
CompletableFuture<Void> cf = CompletableFuture.runAsync(() -> {
System.out.println("do something....");
});
cf.get(); //等待任务执行完成
```
2. 使用supplyAsync方法创建异步任务,该方法可以返回一个结果。
示例代码:
```
CompletableFuture<String> cf = CompletableFuture.supplyAsync(() -> {
System.out.println("do something....");
return "result";
});
cf.get(); //等待任务执行完成
```
3. 可以自定义线程池来执行异步任务。
示例代码:
```
ExecutorService executorService = Executors.newSingleThreadExecutor();
CompletableFuture<Void> cf = CompletableFuture.runAsync(() -> {
System.out.println("do something....");
}, executorService);
cf.get(); //等待任务执行完成
```
4. 可以对多个CompletableFuture进行组合处理,例如使用thenCompose、thenCombine、thenAccept等方法。
以上是CompletableFuture的基本用法,你可以根据具体的需求选择合适的方法来使用。
阅读全文