Concurrency 可以对并发代码进行静态检查吗?

Concurrency 可以对并发代码进行静态检查吗?,concurrency,static-analysis,Concurrency,Static Analysis,在霍尔的书(也是)中,在用餐哲学家示例的末尾,它说: 计算机永远不可能探索所有这些可能性。即使对于非常简单的有限流程,证明没有死锁仍然是并发系统设计者的责任 他是说,还是暗示,并发系统的静态检查是不可能的 他是说,还是暗示,并发系统的静态检查是不可能的 是和否:) 是的,检查并发系统是不可能的。 他是说,即使是一个简单的问题有时也是不可能的 众所周知(可以证明),并发系统的重要属性通常是不可判定的。关于livelock的一个结果如下: M.G.Gouda,C.H.Chow,S.S.Lam:关于通

在霍尔的书(也是)中,在用餐哲学家示例的末尾,它说:

计算机永远不可能探索所有这些可能性。即使对于非常简单的有限流程,证明没有死锁仍然是并发系统设计者的责任

他是说,还是暗示,并发系统的静态检查是不可能的

他是说,还是暗示,并发系统的静态检查是不可能的

是和否:)

是的,检查并发系统是不可能的。 他是说,即使是一个简单的问题有时也是不可能的

众所周知(可以证明),并发系统的重要属性通常是不可判定的。关于livelock的一个结果如下:

M.G.Gouda,C.H.Chow,S.S.Lam:关于通信有限状态机网络中活锁检测的可判定性,协议规范,测试和验证,IV,Elsevier,1985

我不能给出关于CSP和死锁的具体参考,但它们确实存在。引自

Mike R.Jane,Raymond J.Fawcett,Terry p.Mawby:《Transputer应用:进展与前景:SERC/DTI倡议在Transputer工程应用中的闭幕研讨会论文集》,IOS出版社,1992年1月1日

第二个问题是设计中通信结构的无序复杂性。不幸的是,死锁自由不是一个可以通过语言设计完全安全的问题——就像“停止问题”一样,潜在死锁的检测通常是不可计算的

[第163页,p.H.韦尔奇撰写关于Occam的文章]

然而,一般的不可判定性并不排除有一些问题的性质可以通过构造证明或使用应用枚举和检查方法的工具来确定


你问题中的引语是指后者。它说,即使在考虑到国家的数目是天文数字的情况下,即使列举和检查方法也是没有希望的。< / P>这取决于您的并发模型。你可以对基于Pi演算的系统的许多特性进行推理,例如,包括没有死锁和竞争条件关于pi演算的有趣评论。泰。