Java Intellij IDEA计算表达式窗口和Thread.currentThread().isInterrupted()值

Java Intellij IDEA计算表达式窗口和Thread.currentThread().isInterrupted()值,java,multithreading,intellij-idea,Java,Multithreading,Intellij Idea,由于未知原因,我无法从Intellij IDEA Evaluate Expression窗口获取currentThread()的正确值。isInterrupted() 这是一个小代码片段,可以帮助您重现相同的行为: public class IsInterruptedTest { public static void main(String[] args) { Thread.currentThread().interrupt(); System.out

由于未知原因,我无法从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())上设置断点
  • 在调试模式下启动main方法

  • 等待执行到达断点

  • 调用
    Thread.currentThread().isInterrupted()计算表达式窗口(Alt+F8)。(对于我来说,此调用返回false值)

  • 恢复程序执行,一旦完成-检查控制台中打印的值。(对我来说,真的就印在这里)

  • 所以,我的问题是——为什么这两种价值观不同


    发生这种情况是因为当前线程被调试器挂起吗?如果是这样,有没有办法从IDE中的求值表达式窗口获取
    isInterrupted()
    调用的正确值?

    这是一个已知但尚未修复的错误:

    当您在求值控制台中时,Thread.currentThread()返回什么?从test()调用它时是否不同?否,它是同一个线程实例。