【问题标题】:Is there a JVM aimed at debugging concurrent software?是否有旨在调试并发软件的 JVM?
【发布时间】:2010-05-04 05:04:50
【问题描述】:

我使用了 Concurrent Pascal,这是一种有助于调试并发算法的工具,因为当它运行您的代码时,它会随机化在每个可能的步骤中交换到哪个线程,并尝试尽可能多的路径。

有没有 JVM 可以做到这一点?

【问题讨论】:

    标签: java multithreading debugging jvm concurrency


    【解决方案1】:

    看看Java Pathfinder(不过来自 NASA,而且它是免费的)。我认为它应该可以满足您开箱即用的需求,即尝试不同的交错(可能需要一些组装)。

    当然,您仍然需要在您感兴趣的数据上指定验证属性,例如不变量。否则,默认情况下它可能只会告诉您是否存在死锁。请查看“探索执行替代方案”部分。

    【讨论】:

      【解决方案2】:

      据我所知,没有商业 JVM 可以做到这一点,但我建议你看看像 ConTest 这样的工具,它们试图在你的问题领域为你提供帮助:

      ConTest on developerWorks

      ConTest on research site

      一般来说,因为大部分商用的JVM都是依赖操作系统来做线程调度的,所以JVM自己做的事情并不是很自然的事情。 Jikes-RVM 的绿色线程版本可能会有一些东西(可能是较旧的版本)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-17
        • 2021-10-25
        • 1970-01-01
        • 2021-12-31
        • 2023-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多