CompletableFuture 获取结果
时间: 2025-01-02 17:39:43 浏览: 11
### 使用 `CompletableFuture` 获取结果
为了展示如何使用 `CompletableFuture` 来获取结果,下面提供了一个简单而完整的代码示例。该实例展示了创建一个 `CompletableFuture` 对象并从中提取计算后的字符串结果。
```java
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
public class CompletableFutureExample {
public static void main(String[] args) throws InterruptedException, ExecutionException {
// 创建一个带有供给者 Supplier 的异步任务,这里是一个简单的返回 "Hello World!" 字符串的任务。
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
try {
Thread.sleep(2000); // 模拟耗时操作
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
return "Hello World!";
});
// 调用 get 方法阻塞当前线程直到获得结果
String result = future.get(); // 阻塞直至得到结果
System.out.println(result); // 输出最终结果
}
}
```
上述程序定义了一个异步执行的任务,它将在两秒延迟后返回 `"Hello World!"` 这个消息。当调用了 `future.get()` 后会一直等待直到有可用的结果为止[^2]。
此外,在实际应用中可能还会遇到更复杂的情况,比如需要处理多个依赖关系或者组合不同阶段的操作成果。这时就可以利用像 `thenCompose()` 或其他类似的链接方法来构建更加复杂的逻辑流程[^3]。
阅读全文