CompletableFuture代码demo
时间: 2023-10-13 21:50:31 浏览: 95
Java8集合 CompletableFuture lambda表达式 新的TimeAPI 和ForkJoin Demo包
当然,我可以为您提供一个基本的 `CompletableFuture` 代码示例。`CompletableFuture` 是 Java 8 新增的一个类,用于处理异步任务。
下面是一个简单的示例,展示了如何使用 `CompletableFuture` 创建一个异步任务,并在任务完成后获取结果:
```java
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
public class CompletableFutureDemo {
public static void main(String[] args) {
// 创建一个CompletableFuture对象
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
// 模拟一个耗时的操作
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return "Hello, CompletableFuture!";
});
// 在任务完成后获取结果
try {
String result = future.get();
System.out.println(result);
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
}
}
```
在上面的示例中,我们使用 `CompletableFuture.supplyAsync()` 方法创建一个异步任务,该任务会在一个新的线程中执行,并返回一个结果。在这个例子中,我们模拟了一个耗时的操作,等待2秒后返回结果字符串。
然后,我们使用 `future.get()` 方法来获取异步任务的结果。这个方法会阻塞当前线程,直到任务完成并返回结果。
请注意,这只是 `CompletableFuture` 的基本用法示例。`CompletableFuture` 还提供了许多其他方法,如链式调用、异常处理、组合等功能,可以根据具体需求进行使用。
阅读全文