因此,并发计算模型是对并发系统进行数学建模和思考的方式。例如,在一篇理论性很强的研究论文中的参与者模型并没有真正说明参与者如何实现,而只是参与者的要求,它只是一种对并发系统进行数学推理的方式。模式只是构建代码的方法,与仅用于并发的设计模式相同。区别是(imo)与演员之类的东西有点模糊,如果你使用akka之类的东西,那么你的代码模式就是“让一切都成为演员”。
并发模式只是一种设计模式,它使用某些系统原语/语言特性来产生正确的并发实现。
计算模型是对某些计算进行数学推理的一种方式。
所有并发模式都基于底层计算模型。在计算机科学中,您应该能够在数学/逻辑上证明程序的正确性,因此您可以说所有并发模式都可以在实现之前证明或基于一些抽象的数学模型。
也许是一个不完美的例子,但许多语言中的 lambda 和闭包都是基于 lambda 演算的。因此,如果我告诉你使用 lambda 作为网络请求的回调,我说的是一种依赖于 lambda 演算的计算模型的模式。
编辑
您可以在代码中随意混合匹配计算模型和模式,而且您很可能会这样做。话虽这么说,如果您使用一些像演员模式这样的模式,它们几乎是灵丹妙药。例如,Actor 使锁定变得多余。如果你正在写一篇研究论文,你可能不会混合计算模型,虽然我不是学者所以我真的不知道 :)