我最近听说只有通过分析代码的语法和语义才能检测到至少一些死锁。这个话题没有进一步讨论(不幸的是,演讲者没有提出问题),我通过互联网进行的研究远非令人满意。
据我所知,想法是在构建级别运行代码之前检测的死锁所以我不是在谈论模型检查,它基本上试图模拟所有可能的状态我们的程序,看看是否发生任何死锁)。如果可能的话,它可能会与IDE集成,以便在它们发生之前告知可能的死锁。
通过代码分析检测死锁的方法是什么(如果是)?在哪些情况下可以在代码写入级别检测到死锁?这些算法是否简单(因此速度快)足以成为比模型检查或其他运行时死锁检测更合理的选择(有时确实可能代价高昂)?