Java异步编程CompletableFuture

发布时间 2023-03-30 12:17:09作者: 小飞fei

Java 通过多线程可以实现异步编程,下面是一个使用 Java 多线程实现异步编程的示例:

public class AsyncDemo {

    public static void main(String[] args) {
        ExecutorService executorService = Executors.newFixedThreadPool(10);

        CompletableFuture.supplyAsync(() -> {
            // 异步执行的任务
            return "Hello, World!";
        }, executorService).thenAccept(result -> {
            // 异步任务执行完成后的回调
            System.out.println(result);
        });

        // 执行其他的任务
        System.out.println("Doing other things...");

        // 关闭线程池
        executorService.shutdown();
    }

}

CompletableFuture 是 Java 8 引入的一种新的异步编程方式,可以方便地实现异步任务的执行和回调。

在这个示例中,我们通过 CompletableFuture.supplyAsync() 方法来创建一个异步任务。这个方法接受一个 Supplier 类型的参数,用来执行异步任务。我们可以在这个方法中执行耗时的操作,比如网络请求、IO 操作等等。

然后,我们通过 thenAccept() 方法来注册一个回调函数,用来在异步任务执行完成后处理结果。在这个示例中,我们只是简单地将结果输出到控制台。

最后,我们调用了 executorService.shutdown() 方法来关闭线程池,释放资源。

需要注意的是,异步编程需要注意线程安全和资源管理等问题,需要根据实际情况进行权衡和优化。