老师,如果while接收到interrupt的话,下面的睡眠都不应该抛出异常啊,能解释下这个吗?
来源:5-5 中断信号

JLU_LONG
2019-12-14
while (num <= 10000 && !Thread.currentThread().isInterrupted()) {
if (num % 100 == 0) {
System.out.println(num + "是100的倍数");
}
num++;
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
写回答
2回答
-
但是这一段代码由于sleep是在循环体的末尾,所以在休眠期间被中断,并且抛出异常是有极大概率的。
042019-12-14 -
悟空
2019-12-14
是在try期间收到中断信号,抛出异常被catch。如果恰好不是在睡眠期间收到的异常,那么在下一次while判断循环的时候,确实是会跳过的,不会抛出异常。
00
相似问题