java - Intellij IDEA Evaluate Expression 窗口和 Thread.currentThread().isInterrupted() 值

标签 java multithreading intellij-idea

由于未知原因,我无法从 Intellij IDEA Evaluate Expression 窗口中获取 currentThread().isInterrupted() 的正确值。

这是一个小代码片段,可以帮助您重现相同的行为:

public class IsInterruptedTest {

    public static void main(String[] args) {
        Thread.currentThread().interrupt();

        System.out.println(Thread.currentThread().isInterrupted());
    }
}

要重现它,请执行以下步骤:

  1. System.out.println(Thread.currentThread().isInterrupted());设置断点
  2. 在 Debug模式下启动main方法

  3. 等到执行到断点。

  4. Evaluate Expression 窗口 (Alt + F8) 调用Thread.currentThread().isInterrupted();。 (对我而言,此调用返回 false 值)

  5. 恢复程序执行,一旦完成 - 检查控制台中打印的值。 (对我来说,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/

相关文章:

c# - 在 Parallel.For 中修改方法局部变量。这有多线程安全?

android-studio - IntelliJ : How to change background color of Project Folder window?

java - Intellij 中的正则表达式编译

java - 适配器类与数据类中的 toXXX() 方法

java - 有人可以向我解释为什么我会遇到这个错误吗?

java - JAXB 编码 Java 以输出 XML 文件

java - 当我按回我的程序时,我看到一个空白屏幕

c# - Fluent-ASsertions ShouldRaisePropertyChangeFor 不适用于异步任务?

Android 服务和线程

android - 如何使用 Ant 构建 Android 项目? (智能集成开发环境)