Java语言规范7 (JLS7-17.4.5)定义了这样一个“正确同步”的程序:“程序是正确同步的当且仅当所有顺序一致的执行都不存在数据竞争”。
联合来文7-17.4.5还指出:
如果没有正确的同步,非常奇怪、混乱和违反直觉的行为是可能的。
因此,从程序员的角度来看,拥有一个工具来确定程序是否按照上述定义“正确同步”是非常有用的。
有这样的工具吗?我在上面搜不到任何东西。如果没有这样的工具,是否有可能制作一个工具呢?
发布于 2013-01-18 13:52:25
FindBugs可以找到一些并发错误(在检测到的bug列表上搜索“多线程正确性”),可能还有其他类似的工具,但最终只有通过仔细的代码设计和检查才能避免一些bug。
您也可以测试类的并发性问题,但这是一个统计游戏,一些but可能不会出现,这取决于OS/CPU体系结构等等。
我听说过Java并发酷刑工具,但从未使用过。这在官方的JSR 166并发利息列表上已经提到过好几次了。
https://stackoverflow.com/questions/14400044
复制相似问题