我使用了并发Pascal,这是一个帮助调试并发算法的工具,因为当它运行你的代码时,它会在每个可能的步骤随机切换到哪个线程,尝试尽可能多的路径。
有没有JVM可以做到这一点?
发布于 2010-05-11 15:34:10
看看Java Pathfinder吧(尽管来自美国宇航局,但它是免费的)。我认为它应该做几乎开箱即用的事情,也就是尝试不同的交错(可能需要一些组装)。
当然,您仍然需要在您感兴趣的数据上指定验证属性,比如不变量。否则,默认情况下,它可能只会告诉您是否存在死锁。请看“探索执行选项”一节。
发布于 2010-05-04 13:48:07
据我所知,没有商业JVM可以做到这一点,但我建议您看看像ConTest这样的工具,它们试图在您的问题领域中帮助您:
ConTest on developerWorks
通常,因为大多数商业JVM依赖于OS来执行线程调度,所以JVM自己做这件事不是一件自然的事情。对于Jikes-RVM的绿色线程版本(可能是较旧的版本),可能会有一些东西。
https://stackoverflow.com/questions/2762922
复制相似问题