现在的需求是前端的一个终止任务按钮,然后后端的线程停止运行
但是现在的后端是通过定时器去循环查询数据库 然后开启子线程把查询到的数据进行一些业务逻辑的修改 保存到数据库当中 使用的线程池是ThreadPoolExecutor
现在的一个问题是 我应该怎么样去线程池当中指定某个线程去关闭?
首先我没有这么玩过,但一般解决问题的思路就是
1.这个按钮的请求如何获取线程池中的具体线程?这个可能跟你的业务有关,将线程对象绑到map中,通过预设的名称获取之类的
2.如何kill掉这个线程?通过1问题获取到的线程,调用interrupt()方法,只是这个是否会影响该线程在线程池中后续工作,我是不太确定的.
3.当然还有侵入性的做法,就是在目标代码中加上退出标记,按钮的请求就是修改这个标记的值,这个密度就该你自己考虑了,比较丑陋但简单的实现