当前位置: 首页 > 知识库问答 >
问题:

Intellij IDEA评估表达式窗口和线程。currentThread()。isInterrupted()值

颜熙云
2023-03-14

由于未知原因,我无法获得currentThread()的正确值。isInterrupted()来自Intellij IDEA评估表达式窗口。

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

public class IsInterruptedTest {

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

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

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

>

  • 系统上设置断点。出来println(Thread.currentThread()。i中断())
  • 在调试模式下启动main方法

    等待执行到达断点。

    调用线程。currentThread()。isInterrupted() 从计算表达式窗口(Alt F8)。(对我来说,这个调用返回假值)

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

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

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


  • 共有1个答案

    冉丰茂
    2023-03-14

    这是一个已知但尚未修复的错误:https://youtrack.jetbrains.com/issue/IDEA-169706

     类似资料:
    • 问题内容: 什么是实现将采用字符串并根据运算符优先级输出结果的python程序的最佳方法(例如:“ 4 + 3 * 5”将输出19)。我在谷歌上寻找解决这个问题的方法,但是它们都太复杂了,我正在寻找一个(相对)简单的方法。 澄清:我需要比eval()稍微先进的东西-我希望能够添加其他运算符(例如,最大运算符-4 $ 2 = 4),或者,我对此在学术上比对专业更感兴趣-我想知道 该怎么 做。 问题答

    • 本文向大家介绍评估后缀表达式,包括了评估后缀表达式的使用技巧和注意事项,需要的朋友参考一下 为了求解数学表达式,我们需要前缀或后缀形式。将中缀转换为后缀后,我们需要后缀评估算法来找到正确的答案。 在这里,我们还必须使用堆栈数据结构来解决后缀表达式。 从后缀表达式中,找到一些操作数后,将它们压入堆栈。找到某个运算符后,将从堆栈中弹出两个项目,并按正确的顺序执行操作。之后,结果也被压入堆栈中以备将来使

    • 问题内容: 我有一个在Tomcat 5.5上运行的JSP页面。我有以下代码: 我得到的输出是: 我无法弄清楚为什么forEach循环有效,但输出无效。任何人可能提供的任何帮助都将是巨大的。 问题答案: 我知道默认情况下应该启用它,但是我一次又一次地跨页面(甚至是更改行为的同一页面)运行EL处理不会发生的页面。将以下内容添加到任何此类页面的顶部应可解决此问题: 我将它添加到每个页面中,因为它不会造成

    • 问题内容: 在以下示例中: test.html test1.html script1.js 发生fn testFn执行4次。我希望在控制台中只能看到2条日志。即使,即使我删除 有2个日志,而不仅仅是一个。我怎么了 更新: angular.js test.html 安慰 问题答案: 更新: 在对视图表达式进行插值并运行摘要循环时,Angular会至少对每个表达式重新运行/插值至少两次,以便在渲染之前

    • 本文向大家介绍Python用eval评估表达式,包括了Python用eval评估表达式的使用技巧和注意事项,需要的朋友参考一下 示例            

    • 问题内容: 我正在尝试优化执行以下操作的查询: 该查询计划表明,即使在100%的行满足WHEN子句的情况下,也有相当多的时间花费在ELSE分支中对结果的调用上。 我能理解的唯一方法是假定SQLServer正在评估两个结果,然后仅基于对WHEN条件的评估来选择一个,但是我找不到关于CASE结果是否有任何确定的参考语句在条件语句之前进行评估。任何人都可以澄清或指向我参考吗? 问题答案: 那是实际的还是