AsyncUtil异步任务处理工具类+CompletableFuture

  • 功能1:后台悄悄干活,不耽误主线程。把任务交给一个子线程去做,比如记录日志,发消息,发短信,统计数据

  • 功能2:我让你干活,但我只等你 X 秒,超时我就不等了!调用第三方接口一直不返回,查询数据库慢查询卡死,防止整个接口被拖死,它是一个安全保护工具!

  • 使用TransmittableThreadLocal 实现父子线程上下文传递,ThreadLocal:当前线程能用,儿子用不了,TransmittableThreadLocal:老爸能用,儿子也能用

  • 主要使用Guava 超时、重试,TTL 父子线程上下文传递transmittable-thread-local这两个依赖

  • 主线程和子线程:
    主线程开始执行

    主线程走到:asyncUtil.execute(任务)

    【主线程:把任务扔给线程池】

    【线程池:找一个空闲线程来执行这个任务】

    【那个空闲线程 → 变成你的子线程】

    主线程立刻继续往下走,不等待

    子线程在后台默默执行任务

  • AsyncUtil 是对线程池和异步任务的简易封装,CompletableFuture 是 Java 官方提供的完整异步编排方案,功能完全覆盖 AsyncUtil,且更强大。

posted @ 2026-03-26 17:03  Huangyien  阅读(16)  评论(0)    收藏  举报