引言
CompletableFuture 是 Java 8 引入的一个强大的异步编程工具,用于处理异步操作和处理结果。它实现了 Future 和 CompletionStage 接口,提供了丰富的方法来处理异步任务的完成、组合和异常处理。
CompletableFuture本质是对异步线程的返回值的处理,所以要有线程池和对异步结果的处理
方法使用
使用 runAsync 执行无返回值的异步任务
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class CompletableFutureExample {
public static void main(String[] args) {
// 创建一个线程池
ExecutorService executor = Executors.newSingleThreadExecutor();
// 创建一个无返回值的异步任务
CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
try {
Thread.sleep(1000);
System.out.println("异步任务执行完成");
} catch (InterruptedException e) {
e.printStackTrace();
}
}, executor);
// 主线程继续执行其他任务
System.out.println("主线程继续执行");
// 等待异步任务完成
future.join();
// 关闭线程池
executor.shutdown();
}
}
使用 supplyAsync 执行有返回值的异步任务
import java.util.concurrent.CompletableFuture;
import ja