CompletableFuture常见方法以及使用

常用场景:

1.并行执行多个任务CompletableFuture 可以用于并行执行多个任务,从而提高性能

2.并行执行多个任务CompletableFuture 可以用于并行执行多个任务,从而提高性能

3.任务依赖和组合CompletableFuture 允许您创建任务之间的依赖关系,以便在一个任务完成后执行另一个任务。

4.异常处理:您可以使用 CompletableFuture 来处理异步任务中可能出现的异常。

常用方法:

  1. supplyAsync(Supplier supplier):创建一个异步任务,并返回一个 CompletableFuture,它将由 supplier 提供的结果作为计算结果。

  2. thenApply(Function fn):对 CompletableFuture 的结果应用一个函数,返回一个新的 CompletableFuture

  3. thenCompose(Function> fn):将两个 CompletableFuture 对象的结果组合在一起,产生一个新的 CompletableFuture

  4. exceptionally(Function fn):处理异常情况,返回一个默认值或另一个 CompletableFuture

  5. allOf(CompletableFuture... cfs):等待多个 CompletableFuture 完成。

  6. anyOf(CompletableFuture... cfs):等待任何一个 CompletableFuture 完成。

案例

  @Test
    public void testDemo(){
        CompletableFuture future1 = CompletableFuture.supplyAsync(() -> {
            try {
                TimeUnit.SECONDS.sleep(2);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return 2;
        });

        CompletableFuture future2 = CompletableFuture.supplyAsync(() -> 3);

        CompletableFuture combinedFuture = future1.thenCombine(future2, (result1, result2) -> result1 + result2);

        combinedFuture.thenAccept(result -> System.out.println("Combined result: " + result));

        try {
            // 等待所有任务完成
            CompletableFuture.allOf(future1, future2, combinedFuture).get();
        } catch (InterruptedException | ExecutionException e) {
            e.printStackTrace();
        }
    }

 大牛链接:

CompletableFuture用法详解 - 知乎 (zhihu.com)

你可能感兴趣的:(java,1024程序员节,intellij-idea)