当前位置: 首页 > news >正文

线程池异步处理

List<CompletableFuture<Void>> futures = new ArrayList<>();// 提交10个异步任务
for (int i = 0; i < 10; i++) {CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {insertData(batchData); // 每个任务插入一批数据}, pool).thenAccept();futures.add(future); // 将Future对象存入列表
}// 等待所有任务完成
CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join();

通过CompletableFuture或回调函数,调用线程无需等待任务完成,实现真正的异步Future

ExecutorService pool = Executors.newFixedThreadPool(2);
List<CompletableFuture<Void>> futures = new ArrayList<>();for (int i = 1; i <= 3; i++) {int taskId = i;CompletableFuture<Void> future = CompletableFuture.supplyAsync(() -> {Thread.sleep(1000);return "Result-" + taskId;}, pool).thenAccept(result -> {System.out.println("[Callback] Task " + taskId + " => " + result);});futures.add(future); // 保存Future对象
}// 等待所有任务完成(阻塞主线程)
CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join();
pool.shutdown();
System.out.println("所有任务完成!");

没有future会咋样?

(1) 主线程不会等待任务完成
(2) 无法统一处理任务状态
  • 失去的能力

    • 无法通过 CompletableFuture.allOf() 等待所有任务完成。

    • 无法统计成功/失败的任务数量。

无法集中处理异常(如记录失败日志或重试)

Q:我都要主线程等待了,为啥还用异步,直接用普通线程池不就行了

使用 异步任务(如 CompletableFuture)+ 主线程等待 相比 普通线程池阻塞等待,在以下场景中具有显著优势:

  1. 灵活组合任务:可轻松实现“任务并行→结果聚合”的流程(如 allOf/anyOf)。

  2. 非阻塞回调:即使主线程等待,仍能通过回调处理中间结果(如进度更新)。

相关文章:

  • 经典新生:我如何用 AI 重制 40 款益智游戏
  • 数据结构学习——树的储存结构
  • 深度学习:PyTorch人工神经网络优化方法分享(2)
  • C++ 第二阶段:类与对象 - 第三节:成员函数与访问权限
  • 在windows上使用file命令
  • Flink SQL Connector Kafka 核心参数全解析与实战指南
  • linux----------------进程VS线程
  • EMD与PI:战略与执行的协同
  • “MOOOA多目标鱼鹰算法在无人机多目标路径规划
  • RabbitMQ从入门到实践:消息队列核心原理与典型应用场景
  • 文心一言(ERNIE Bot):百度打造的知识增强大语言模型
  • Cache Travel-09-从零开始手写redis(17)v1.0.0 全新版本架构优化+拓展性增强
  • 客户需求频繁变动时,如何快速同步各项目变更?
  • 关于计算机基础知识的详细讲解(从属GESP一级内容)
  • C# 数组(数组协变和数组继承的有用成员)
  • 北京华宇信息技术有限公司系统服务工程师招聘面试题(笔试)
  • 大模型和ollama一起打包到一个docker镜像中
  • windows 访问ubuntu samba配置
  • C#设计模式-Builder-生成器-对象创建型模式
  • 【软考高级系统架构论文】# 论软件设计方法及其应用
  • 平面设计做画册用网站/产品推广网站哪个好
  • 肇庆网站开发/站长工具最近查询
  • 大庆百度做网站多少钱/seo学堂
  • 企业运营仿真大赛/谷歌seo网络公司
  • 鲜花网站建设策划方案书/企业邮箱查询
  • 网站与网页的区别./网络营销广告案例