java异步延迟任务执行
今天遇到一个奇怪的需求:需要在某个操作后,延迟10min执行另一个操作。
一 新建线程
首先想到的方法便是新建一个线程完成此操作:
输出
看起来这个操作没有问题 ,但是现在项目中就有问题了。
这是阿里代码检查工具的提示。
试想一下,每次进行这种操作便新建线程是不可取的,如果这个操作执行多次,便会创建大量线程,对虚拟机运行造成巨大的压力。
二 使用线程池
输出结果
在项目中当然也可以将线程池交给spring进行维护
三 spring线程池
接下来就是项目中注入并使用这个threadPool对象了
spring中还有一个ThreadTask,有时间的朋友可以去研究研究。