做的网页后台,我的项目是打成 war 包以后部署在外部 tomcat 上的,运行的时候就感觉服务器被我的程序拖得很卡,访问网页也感觉比较卡,有时候登陆完了啥都不显示,要刷新几遍才加载出来。
我在 ctrl+c 停止服务的时候,爆出很多严重的警告或者错误,都是 “Web应用程序[XXX]似乎启动了一个名为[XXXX]的线程,但未能停止它。这很可能会造成内存泄漏”, 线程名字一看就是一个线程池里有好多线程:pool-6-thread-1,pool-6-thread-2,pool-6-thread-3这样的。
我排查了一下,最多也就知道是因为我用了定时任务导致的,我有几个定时任务是加了 @Scheduled,像每天零点执行的,每小时执行一次的都有。现在是只要我在启动类加了 @EnableScheduling,停止任务的时候就会出现上面很多线程的警告或错误,网上查过加 webListener 和 ServletContextListener 的实现,都不好使,这个问题有解决的方法吗?我的程序这么卡是不是因为这些线程?