侧边栏壁纸
博主头像
意义Meaning

每天过的都要有意义

  • 累计撰写 10 篇文章
  • 累计创建 6 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

CompletableFuture的使用

意义Meaning
2024-11-12 / 0 评论 / 0 点赞 / 3 阅读 / 0 字
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

实现思路

要优化并发查询接口的响应速度,传统的优化方式是通过多线程来并行执行多个查询任务。但这种做法存在一些缺陷:

  1. 创建和管理线程的开销较大,如果线程数量过多,会给系统带来很大的压力。

  2. 如果查询任务的执行时间不均匀,会导致部分线程需要长时间等待,资源利用率低下。

而CompletableFuture提供了一种更优雅、更高效的解决方案。其核心思路是:

  1. 每个查询任务都封装为一个CompletableFuture异步任务,由线程池并行执行。

  2. 通过CompletableFuture.allOf()方法等待所有异步任务完成。

  3. 最后从每个任务的结果中组装出最终需要的数据对象。

import java.util.concurrent.CompletableFuture;

public class CompletableFutureExample {
    public static void main(String[] args) {
        CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
            // 模拟一些长时间运行的任务
            try {
                Thread.sleep(2000);
                System.out.println("任务完成");
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        });

        // 在这里可以做其他事情
        System.out.println("主线程继续工作...");

        // 等待任务完成
        future.join();
        System.out.println("所有任务完成");
    }
}

0

评论区