并发代码分析器

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

如果该工具知道jre传送的类和方法的所有实现,那么它归结为对同步块和方法及其调用层次结构的简单分析。 从这里它可以创建一个petri网,并告诉你,如果你可能遇到死锁。

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

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

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

IBM有一个名为ConTest的工具,它“调度程序线程的执行,以便可能包含竞争条件,死锁和其他间歇性错误(统称为同步问题)的程序方案被强制出现”。

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

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

多一点 :

  • Klocwork的
  • CheckThread