completablefuture使用示例
时间: 2023-03-03 14:10:51 浏览: 100
CompletableFuture是Java 8引入的一个异步编程工具,可以方便地执行异步任务并处理任务完成后的结果。以下是使用CompletableFuture的一个示例:
假设我们要执行一个耗时的任务,例如从远程服务器下载文件。我们可以使用CompletableFuture来实现异步下载并处理下载后的结果。具体步骤如下:
1. 创建一个CompletableFuture对象
```
CompletableFuture<byte[]> future = new CompletableFuture<>();
```
2. 使用线程池异步执行任务,将任务结果设置到CompletableFuture对象中
```
ExecutorService executor = Executors.newCachedThreadPool();
executor.submit(() -> {
// 执行耗时任务,例如从远程服务器下载文件
byte[] result = downloadFile(url);
// 将结果设置到CompletableFuture对象中
future.complete(result);
});
```
3. 处理CompletableFuture对象的结果
```
future.thenAccept(result -> {
// 处理下载后的结果
processResult(result);
});
```
在上面的示例中,我们使用CompletableFuture对象来处理异步任务的结果。在第2步中,我们使用线程池异步执行耗时任务,并将结果设置到CompletableFuture对象中。在第3步中,我们使用thenAccept方法处理CompletableFuture对象的结果。这样我们就可以方便地实现异步任务并处理任务完成后的结果。
阅读全文