CompletableFuture 可以与 ExecutorService 配合使用,这样可以在后台线程中执行任务,并在主
线程中接收结果。这种方式非常适合处理异步任务,特别是当这些任务涉及到耗时操作(例如 I/O
操作、网络请求等)时。
下面是一个具体的例子,展示如何使用 CompletableFuture 和 ExecutorService 来实现异步任务的
执行和结果的获取。
示例代码
首先,我们需要创建一个 ExecutorService 实例,用于执行后台任务。然后,我们将使用
CompletableFuture 来提交任务并在主线程中获取结果。
import java.util.concurrent.*;
public class CompletableFutureWithExecutorExample {
public static void main(String[] args) {
// 创建一个固定大小的线程池
ExecutorService executor = Executors.newFixedThreadPool(4);
// 创建一个 CompletableFuture 对象
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
// 模拟耗时操作
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
retu