由于未知原因,我无法从 Intellij IDEA Evaluate Expression 窗口中获取 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());设置断点
在 Debug模式下启动main方法
等到执行到断点。
从Evaluate Expression 窗口 (Alt + F8) 调用
Thread.currentThread().isInterrupted();
。 (对我而言,此调用返回 false 值)恢复程序执行,一旦完成 - 检查控制台中打印的值。 (对我来说,true 就打印在这里)
所以,我的问题是 - 为什么这两个值不同?
发生这种情况是因为当前线程被调试器挂起了吗?如果是这样,是否有任何方法可以从 IDE 的 Evaluate Expression 窗口获取 isInterrupted()
调用的正确值?
最佳答案
这是一个已知但尚未修复的错误:https://youtrack.jetbrains.com/issue/IDEA-169706
关于java - Intellij IDEA Evaluate Expression 窗口和 Thread.currentThread().isInterrupted() 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43853591/