【发布时间】:2020-07-11 15:05:11
【问题描述】:
用interrupt()做实验,发现isInterrupted()总是false。
另一件事是,将 isInterrupted() 替换为 Thread.interrupted() 将使线程停止。
有人可以解释为什么会发生这种行为吗?
public static void main(String[] args) {
Thread counter = new Thread(new Worker());
counter.start();
counter.interrupt();
}
static class Worker extends Thread {
@Override
public void run() {
String msg = "It was interrupted";
while (true) {
if (isInterrupted()) {
System.out.println(msg);
return;
}
}
}
}
【问题讨论】:
标签: java multithreading java-8