AsyncUtil异步任务处理工具类+CompletableFuture
-
功能1:后台悄悄干活,不耽误主线程。把任务交给一个子线程去做,比如记录日志,发消息,发短信,统计数据
-
功能2:我让你干活,但我只等你 X 秒,超时我就不等了!调用第三方接口一直不返回,查询数据库慢查询卡死,防止整个接口被拖死,它是一个安全保护工具!
-
使用TransmittableThreadLocal 实现父子线程上下文传递,ThreadLocal:当前线程能用,儿子用不了,TransmittableThreadLocal:老爸能用,儿子也能用
-
主要使用Guava 超时、重试,TTL 父子线程上下文传递transmittable-thread-local这两个依赖
-
主线程和子线程:
主线程开始执行
↓
主线程走到:asyncUtil.execute(任务)
↓
【主线程:把任务扔给线程池】
↓
【线程池:找一个空闲线程来执行这个任务】
↓
【那个空闲线程 → 变成你的子线程】
↓
主线程立刻继续往下走,不等待
↓
子线程在后台默默执行任务 -
AsyncUtil 是对线程池和异步任务的简易封装,CompletableFuture 是 Java 官方提供的完整异步编排方案,功能完全覆盖 AsyncUtil,且更强大。

浙公网安备 33010602011771号