SpringBootTest运行线程池被拒绝

复制代码
localhost myApp 2025-10-14 20:07:46.646 ERROR ???? [nTaskExecutor-8] s.l.SmsSendMsgRecordConsumerListenerTest:148 : [] [] [] validAddressMatchedMoveOrderMsg error, e->
java.util.concurrent.RejectedExecutionException: Task java.util.concurrent.CompletableFuture$AsyncSupply@21dd0075 rejected from java.util.concurrent.ThreadPoolExecutor@449d25f9[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0]
	at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2063) 
	at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:830) 
	at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1379) 
	at java.util.concurrent.CompletableFuture.asyncSupplyStage(CompletableFuture.java:1618) 
	at java.util.concurrent.CompletableFuture.supplyAsync(CompletableFuture.java:1843) 
	at com.pdd.service.oakland.sending.listener.SmsSendMsgRecordConsumerListenerTest.validAddressMatchedMoveOrderMsg(SmsSendMsgRecordConsumerListenerTest.java:117) 
	at com.pdd.service.oakland.sending.listener.SmsSendMsgRecordConsumerListenerTest.lambda$consumeMessage$0(SmsSendMsgRecordConsumerListenerTest.java:78) 
	at java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1640) 
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
	at java.lang.Thread.run(Thread.java:750) 

和SpringBootTest容器销毁时间有关系,这里的使用场景是线程池嵌套线程池,CompletableFuture嵌套CompletableFuture

在第一个线程池任务全部提交完成之后,才会开始运行第二个线程池,这个时候容器已经在销毁了,所以会提示线程池已经TERMINATED了

在中途打断点用isTerminated()方法是可以看到线程池还没有关闭的

相关推荐
Hx_Ma164 小时前
SpringMVC框架提供的转发和重定向
java·开发语言·servlet
期待のcode5 小时前
原子操作类LongAdder
java·开发语言
舟舟亢亢5 小时前
Java集合笔记总结
java·笔记
小酒窝.6 小时前
【多线程】多线程打印ABC
java
乡野码圣6 小时前
【RK3588 Android12】RCU机制
java·jvm·数据库
JAVA+C语言6 小时前
如何优化 Java 多主机通信的性能?
java·开发语言·php
编程彩机7 小时前
互联网大厂Java面试:从分布式架构到大数据场景解析
java·大数据·微服务·spark·kafka·分布式事务·分布式架构
小酒窝.8 小时前
【多线程】多线程打印1~100
java·多线程
君爱学习8 小时前
基于SpringBoot的选课调查系统
java
APIshop8 小时前
Java 实战:调用 item_search_tmall 按关键词搜索天猫商品
java·开发语言·数据库