好的,假设我有一个执行 while() 循环的线程。在循环期间,可以做一些事情然后重新进入睡眠状态:
public void run() {
while (some_condition) {
doSomeLongJob(); // this could be a long job
try {
Thread.sleep(a_bit); // back to sleep
} catch (InterruptedException ie) {
handleInterruptionButDoNotExitLoop();
}
}
}
一些问题:
- 如果在doSomeLongJob的执行过程中出现一些中断,该方法将继续其自然结束吗?(我想是的,只要没有人检查Thread.interrupted()但我想要确认);
- 捕获中断后,interrupted()状态是否会重置为 false?
- 总而言之,一个线程只要重置线程状态就可以中断n次?有没有办法手动重置线程状态以处理doSomeLongJob执行期间的中断?