【问题标题】:Does a breakpoint halt all threads?断点会停止所有线程吗?
【发布时间】:2011-12-31 17:51:29
【问题描述】:

如果我的程序中有两个线程同时运行并在其中一个上设置断点,那么另一个线程会在遇到此断点时停止,还是继续执行?

(我正在用 Java 编写并使用 NetBeans)

【问题讨论】:

  • @mre 正如你从 mijer 的回答中看到的那样,它取决于环境设置,所以我的观察并没有给我完整的画面,因此这个问题值得提出。

标签: java multithreading netbeans concurrency breakpoints


【解决方案1】:

值得注意的是,在 Eclipse 和 NetBeans 中,默认行为是在遇到断点时暂停当前线程,而在 IntelliJ 中,它会暂停所有线程。

【讨论】:

    【解决方案2】:

    默认情况下,只有遇到断点的线程才会停止。但是,您可以通过更改断点属性来修改行为。

    【讨论】:

      【解决方案3】:

      断点可以选择它们的行为方式:挂起单个线程或所有线程

      【讨论】:

      • 无法与其他 IDE 对话,但在 IDEA 中,您可以右键单击装订线中的断点并将其暂停模式从“全部”(默认)更改为“线程”。直到今天,当我试图弄清楚为什么 Guava 事件总线处理程序中的断点会暂停主线程时,我才知道你可以这样做。
      【解决方案4】:

      我相信每个线程一旦遇到代码中的断点就会停止,而其他线程会继续运行。我从我的 Tomcat 时代就记得这一点。

      【讨论】:

      • 如果我们谈论的是单个网络应用程序,我认为这可能不是真的。在 intellij idea 断点默认停止所有线程。正因为如此,我在尝试调试时遇到了困难@Async:我没有按预期进行调试
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-08
      • 1970-01-01
      • 2012-05-06
      • 1970-01-01
      相关资源
      最近更新 更多