稍后添加。代码为文本:
@Override
protected void letUsFinalise() {
this.interrupt();
}
答案 0 :(得分:2)
interrupted()
的javadoc说:
测试当前线程是否已被中断。 此方法清除线程的中断状态。换句话说,如果连续两次调用此方法,则第二次调用将返回false
(强调我的)
BTW,interrupted()
是一种静态方法。它应该在Thread类上调用,而不是在this
中调用。鉴于它有副作用,你应该在调试器中为它创建一个手表。请改为观看isInterruped()
。
答案 1 :(得分:0)
请注意,interrupt()可能不会立即停止执行该线程。 调试多线程程序可能不是那么简单,因为执行可能完全不同。因此,我建议您执行以下操作:
while(!Thread.foo.isInterrupted()){
//wait or do something
}