【发布时间】:2015-03-19 10:08:22
【问题描述】:
我有一个使用框架 struts2 和 Tomcat 的 J2EE 项目。有两个动作:“开始任务”和“停止任务”。据我了解,当用户运行任务“启动任务”时,Tomcat 会启动一个执行任务的线程。用户可以单击“停止任务”,然后 Tomcat 在需要停止第一个线程的地方启动第二个线程。执行任务非常大的操作方法。有对数据库和计算的查询。为了停止线程,我使用了第一个线程的interrupt(),但interrupt() 只是更改了标志的值,但方法中的代码继续运行。我在方法的不同部分检查中断标志(Thread.currentThread().isInterrupted()),如果线程被中断,那么我使用“return”。有没有其他办法?
【问题讨论】:
-
这就是它的工作原理;)你只能要求另一个线程停止执行(使用interrupt()方法),而被中断的线程将如何响应这个中断
标签: java multithreading