java - Eclipse 和其他用于调试并发代码的 Java IDE

标签 java eclipse ide concurrency debugging

我目前正在处理一些似乎有一些竞争条件的并发代码。我正在尝试使用当前的 IDE Eclipse 调试代码,但我并不完全满意。特别是,变量存在竞争条件,使得访问它的方法之一(“获取”它的方法)没有断点,变量设置方法不会完成,并且变量设置为 null。但是,如果我在访问方法上设置一个断点,并按住 F8(默认的跳过按钮),该变量几乎总是设置为正确的(非空)值。

这让我问以下问题:Eclipse 是否有可能没有足够快地暂停跨所有线程的断点执行,以至于我可以查看潜在的竞争条件,因为它出现时没有断点,或者是其他原因(可能)发生?

如果 Eclipse 不能快速暂停执行,是否有其他适用于 Java 的 IDE/调试器可以在这方面做得更好?请注意,我不是在寻找像 Java Pathfinder 这样的正式验证工具——我不想检查是否存在竞争条件,我希望看到它们在我的调试器中展开(如果只是因为它可能看起来很有趣的话)。

最佳答案

默认情况下,如果一个线程到达您的断点,Eclipse 将不会挂起其他线程。但是,您可以在 Window > Preferences > Java > Debug > Default suspend policy for new breakpoints => 'Suspend VM' 中更改此行为。

关于java - Eclipse 和其他用于调试并发代码的 Java IDE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3240726/

相关文章:

ide - 从输入代码到执行程序都涉及哪些内容?

java - 无法从 Java 程序中引用的 main.xml 获取小部件

java - 如何将多个日期间隔搜索与 Spring Data JPA 的 CrudRepository 结合起来?

java - 使用 Java 或 Groovy 以编程方式修改 Java 源代码

java - Eclipse 颜色主题 - java 和 flex

java - eclipse突然找不到兼容的jre

php - 如何升级到 PhpStorm 8?

Java币找零评估

android - 无法调用 IResourceEventListener.resourceChangeEventEnd java.lang.StackOverflowError

ide - 什么是最有趣和创新的 IDE?