在项目中为了提高接口的响应速度我经常会使用多线程来解决这个问题,在最近的一个项目,自己创建了一个线程池,并将它交给了spring容器来进行管理,在需要的地方来进行注入使用.
我在定时任务中使用了这个线程池,因为定时任务是每个季度执行的,所以我写了个测试类来执行这个定时任务,但是在测试类跑完之后,数据库中的数据并没有随着定时任务的逻辑而进行改变.
原因是测试方法在结束之后,JVM也跟着停跳了,其他线程任务还没执行就结束了,所以导致线程池执行多线程任务失败.
第二种情况是定时执行任务的线程池
之前在项目中运用到了redis的过期消息队列来完成定时任务
于是我使用了一个定时执行任务的线程池来实现,具体代码如下
注意这里使用的是TimerTask而非普通的Runnable,
如果使用的是普通的Runnable会导致线程任务不执行,这是定时执行任务线程池不执行任务的解答!!
有帮助点个赞哦!!!!