我找到了这个解决方案来了解线程是否被中断。
public class OurThread extends Thread(){
private volatile boolean stop = false;
public void run(){
while (!stop) {
//Do your actions
}
}
}
但是我的 run 方法只执行一次,所以把它放在一个 while 循环中是没有意义的。我发现的另一种方法是检查 Thread.isInterrupted() 标志,然后终止线程。我的 run() 方法很长,所以我必须多次检查这种情况,这会使我的代码变脏。
我必须将它应用到四个不同的过程中,所以我试图找到一个更简单、更清洁的解决方案。我希望是否有类似的东西:
try{//my code}
catch(interrumption)
问题是,由于我的线程被使用future.cancel()打断了,所以我的run()代码中没有抛出中断,所以我也不能这样做。
有什么建议吗?现在,如果线程已被取消,我会在代码之间检查很多次。谢谢 :)