MST
星途 面试题库

面试题:Java中CompletableFuture的常见创建方式有哪些

请简述Java中CompletableFuture常见的创建方式,并各举一个简单示例代码说明。
38.4万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试

创建方式及示例

  1. runAsync:创建一个没有返回值的异步任务。
    import java.util.concurrent.CompletableFuture;
    
    public class CompletableFutureExample {
        public static void main(String[] args) {
            CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
                System.out.println("执行异步任务");
            });
            future.join();
        }
    }
    
  2. supplyAsync:创建一个有返回值的异步任务。
    import java.util.concurrent.CompletableFuture;
    
    public class CompletableFutureExample {
        public static void main(String[] args) {
            CompletableFuture<Integer> future = CompletableFuture.supplyAsync(() -> {
                System.out.println("执行异步计算");
                return 42;
            });
            future.thenAccept(result -> System.out.println("计算结果: " + result)).join();
        }
    }
    
  3. completedFuture:创建一个已完成的CompletableFuture,直接返回给定的值。
    import java.util.concurrent.CompletableFuture;
    
    public class CompletableFutureExample {
        public static void main(String[] args) {
            CompletableFuture<String> future = CompletableFuture.completedFuture("已完成的结果");
            future.thenAccept(result -> System.out.println("结果: " + result)).join();
        }
    }