并发代码分析器

时间:2011-05-22 20:47:57

标签: java concurrency synchronized petri-net

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

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

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

这样可以节省大量工时搜索可能与死锁问题有关的错误。

3 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:1)

This论文介绍了一种对库执行静态分析并确定是否存在死锁的工具。

答案 2 :(得分:0)

更多: