请问老师为什么在子线程中,开始休眠阻塞,sleep是失效的,放在while循环里面是可以阻塞生效的?
来源:5-4 遇到阻塞

慕莱坞8435019
2019-12-23
public class RightWayStopThreadWithoutSleep implements Runnable {
@Override
public void run() {
try {
System.out.println(Thread.currentThread().getName());
Thread.sleep(100000);
} catch (InterruptedException e) {
e.printStackTrace();
}
int num = 0;
//状态已经没有更改,并且是满足条件
while (!Thread.currentThread().isInterrupted() && num <= Integer.MAX_VALUE / 2) {
if (num % 10000 == 0) {
System.out.println(num + "是1w的倍数");
}
num++;
}
System.out.println("结束执行");
}
public static void main(String[] args) throws InterruptedException {
System.out.println(Thread.currentThread().getName());
Thread thread = new Thread(new RightWayStopThreadWithoutSleep());
thread.start();
//让线程执行1秒,然后在更改状态
Thread.sleep(1000);
thread.interrupt();
}
}
请问老师为什么在子线程中,开始休眠阻塞,sleep是失效的,放在while循环里面是可以阻塞生效的?
1回答
-
开始也是生效的,只不过中断以后,跳出sleep了
092019-12-25
相似问题
回答 1
回答 2