编程语言
首页 > 编程语言> > java-是否有工具来确定程序是否按照JLS中的定义“正确同步”?

java-是否有工具来确定程序是否按照JLS中的定义“正确同步”?

作者:互联网

Java语言规范7(JLS7-17.4.5)定义了一个“正确同步”的程序,如下所示:“当且仅当所有顺序一致的执行都没有数据竞争时,程序才正确同步”.

JLS7-17.4.5还指出:

Without correct synchronization, very strange, confusing and counterintuitive behaviors are possible.

因此,从程序员的角度来看,根据上面的定义,使用一种工具来确定程序是否“正确同步”将非常有用.

有这样的工具吗?我无法通过谷歌搜索找到任何东西.如果没有这样的工具,有可能做一个吗?

解决方法:

FindBugs可以找到一些并发性错误(在the list of detected bugs上搜索“多线程正确性”),可能还有其他类似的工具,但是最后,只有通过精心设计和审查代码,才能避免某些错误.

您也可以测试类的并发问题,但这是一种统计游戏,根据OS / CPU架构等,某些错误可能永远不会出现.

我听说过Java concurrency torture工具,但从未使用过.在官方JSR 166 Concurrency Interest list上已多次提及.

标签:java-memory-model,concurrency,java,jls
来源: https://codeday.me/bug/20191031/1975284.html