我想知道是否有任何框架或应用程序(app)/程序可以分析任何java代码的并发性?
如果该工具知道 jre 提供的类和方法的所有实现,那么它就可以归结为对同步块和方法及其调用层次结构的简单分析。从这里它可以创建一个 Petri 网并确定地告诉您是否会遇到僵局。
我错过了什么还是这真的那么容易?那么一定有一些很酷的工具可以做这样的事情吗?或者这样的工具是否会报告太多可能的死锁,而这些死锁由于某些底层程序/业务逻辑而完全保存? Petri 网应该足够强大来处理这些情况吗?
这将节省大量搜索可能与死锁问题相关或无关的错误的工时。
虽然(许多)并发相关的错误可以使用静态代码分析来发现,但它并不适用于所有类型的错误。有些错误仅在某些条件下运行时出现。
IBM有一个工具叫 that “调度程序线程的执行,使得可能包含竞争条件、死锁和其他间歇性错误(统称为同步问题)的程序场景被迫高频率出现”。
这需要针对应用程序的检测版本运行(单元)测试。更多背景信息在此developerWorks 文章 http://www.ibm.com/developerworks/java/library/j-contest/index.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)