由于未知原因,我无法从 Intellij IDEA评估表达式窗口中获取 currentThread()。isInterrupted()的正确值。
这是一个小代码片段,可帮助您重现相同的行为:
public class IsInterruptedTest {
public static void main(String[] args) {
Thread.currentThread().interrupt();
System.out.println(Thread.currentThread().isInterrupted());
}
}
要重现它,请执行以下步骤:
System.out.println(Thread.currentThread().isInterrupted());
以调试模式启动main方法
等到执行到达断点。
从评估表达式窗口(Alt + F8)中调用Thread.currentThread().isInterrupted();
。 (对我来说,此调用返回 false 值)
恢复程序执行,完成后 - 检查控制台中打印的值。 (对我来说 true 就在这里打印)
所以,我的问题是 - 为什么这两个值不同?
这是否由于当前线程被调试器暂停而发生?如果是这样,有没有办法从IDE中的评估表达式窗口获取正确的isInterrupted()
调用值?