gpt4 book ai didi

java - 有没有工具可以判断一个程序是否是JLS定义的 "correctly synchronized"?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:19:35 24 4
gpt4 key购买 nike

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 - 有没有工具可以判断一个程序是否是JLS定义的 "correctly synchronized"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14400044/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com