具体举例 CompletableFuture.supplyAsync的使用场景
时间: 2023-06-11 10:07:20 浏览: 212
CompletableFuture.supplyAsync() 是 Java 8 中的一个异步编程工具,主要用于异步执行一个计算任务并返回计算结果。下面是一些使用场景:
1. 异步加载数据:当需要从数据库或网络异步加载数据时,可以使用 supplyAsync() 方法进行异步加载。
```java
CompletableFuture.supplyAsync(() -> db.loadUserData(userId))
.thenAcceptAsync(userData -> processUserData(userData));
```
2. 执行计算密集型任务:当需要执行一个计算密集型任务时,可以使用 supplyAsync() 方法进行异步计算。
```java
CompletableFuture.supplyAsync(() -> calculatePi(100000))
.thenAcceptAsync(pi -> displayResult(pi));
```
3. 并行执行多个任务:当需要并行执行多个任务时,可以使用 CompletableFuture.allOf() 方法结合 supplyAsync() 方法。
```java
CompletableFuture<Double> task1 = CompletableFuture.supplyAsync(() -> calculatePi(10000));
CompletableFuture<Double> task2 = CompletableFuture.supplyAsync(() -> calculatePi(20000));
CompletableFuture<Double> task3 = CompletableFuture.supplyAsync(() -> calculatePi(30000));
CompletableFuture.allOf(task1, task2, task3)
.thenAcceptAsync(() -> {
Double pi1 = task1.join();
Double pi2 = task2.join();
Double pi3 = task3.join();
displayCombinedResult(pi1, pi2, pi3);
});
```
这些场景只是 supplyAsync() 方法的一部分应用,还有很多其他的使用方式,需要根据具体的业务场景进行选择。
阅读全文