SuperAPI AI 工具集

java-async-concurrent

编程与开发

查看项目

更新于 10-15 20:07

技能介绍

用途:为高性能系统提供 Java 异步与并发编程的参考模式,每种模式附带完整 Java 实现代码,便于直接借鉴到项目中。

主要能力(共 5 种模式):

  1. 虚拟线程(Java 21):用 Executors.newVirtualThreadPerTaskExecutor() 并发处理任务并支持超时,或用 Thread.startVirtualThread 直接启动。要点:适合 I/O 密集型负载,不适合 CPU 密集型;无需池化;避免 synchronized 块以防线程固定(pinning),改用 ReentrantLock;配合 try-with-resources 自动关闭。
  2. CompletableFuture:提供带超时与错误处理的异步封装(orTimeout、exceptionally)、组合多个异步操作(allOf,类似 Promise.all)、链式调用与错误恢复(thenApply、thenCompose)。要点:supplyAsync 默认运行于 ForkJoinPool.commonPool();join() 抛非受检异常,get() 抛受检异常。
  3. Reactive Streams(Project Reactor):用 Flux/Mono 处理数据流,flatMap 控制并发度,subscribeOn(Schedulers.boundedElastic()) 做非阻塞 I/O,onErrorContinue 单条出错不中断整条流,timeout 设置单项超时,retryWhen 配合 Retry.backoff 实现指数退避重试。
  4. 传统线程池:为 CPU 密集型任务创建 ThreadPoolExecutor(核心/最大线程数取 CPU 核数、有界队列、CallerRunsPolicy 拒绝策略),为 I/O 密集型任务创建固定线程池,并提供带超时的优雅关闭方法。
  5. Resilience4j 重试:通过 RetryConfig 配置最大尝试次数、等待时长与指数退避间隔函数,指定重试与忽略的异常类型,并用事件发布器监听重试与失败事件。

使用方式:资料以代码示例形式给出各模式的实现与关键原则,未提供安装命令、依赖坐标或运行步骤。

适用场景:需要高并发 I/O 处理、异步任务编排、响应式数据流、线程池调优或失败重试容错的 Java 服务端系统。

限制:资料未说明版本兼容范围、性能基准、许可协议或具体依赖版本;虚拟线程需 Java 21+,orTimeout 需 Java 9+。部分内容(如价格、平台支持)暂未提供。