4

我想知道是否有任何框架或应用程序(应用程序)/程序可以分析任何 Java 代码的并发性?

如果该工具知道 jre 提供的类和方法的所有实现,那么它可以归结为对同步块和方法及其调用层次结构的简单分析。从这里它可以创建一个 petri 网,并确定您是否会遇到僵局。

我错过了什么或者这真的很容易吗?那么一定有一些很酷的工具可以做那种事情吗?或者这样的工具是否会报告由于某些底层程序/业务逻辑而完全保存的太多可能的死锁?Petri 网应该足够强大来处理这些情况吗?

这将节省大量搜索可能与死锁问题相关或无关的错误的工时。

4

3 回答 3

5

尽管可以使用静态代码分析找到(许多)与并发相关的错误,但它并不适用于每种类型的错误。某些错误仅在特定条件下在运行时出现。

IBM 有一个名为ConTest的工具,它“安排程序线程的执行,以便可能包含竞争条件、死锁和其他间歇性错误(统称为同步问题)的程序场景被迫以高频率出现”。

这需要针对应用的检测版本运行(单元)测试。这篇developerWorks 文章中的更多背景信息。

于 2011-05-22T21:23:30.110 回答
1

本文描述了一种对库执行静态分析并确定是否可能出现死锁的工具。

于 2011-05-22T20:59:14.750 回答
0

多一点 :

于 2011-12-02T18:47:43.423 回答