Design patterns 并发计算模型和并发模式之间有什么区别?

Design patterns 并发计算模型和并发模式之间有什么区别?,design-patterns,concurrency,computer-science,actor-model,Design Patterns,Concurrency,Computer Science,Actor Model,包括参与者模型、CSP、Petri网等 包括活动对象、屏障、反应器、监视器、调度器等 并发计算模型和并发模式之间的区别(也可能是关系)是什么? 有趣的是,在并发模式下列出了“参与者模型”。这让我对我上面问的问题更加不确定 我对它们没有太多的接触,但并发模型似乎比并发模式更常被提及。并发模式不受欢迎吗 不同的并发模式和不同的并发模型能否以混合匹配的方式使用,或者某些并发模式是否仅与某些并发模型一起使用 如果可能的话,您能提供一些支持您的回复或评论的参考资料吗?因此,并发计算模型是对并发系统进行数学

包括参与者模型、CSP、Petri网等

包括活动对象、屏障、反应器、监视器、调度器等

  • 并发计算模型和并发模式之间的区别(也可能是关系)是什么? 有趣的是,在并发模式下列出了“参与者模型”。这让我对我上面问的问题更加不确定

  • 我对它们没有太多的接触,但并发模型似乎比并发模式更常被提及。并发模式不受欢迎吗

  • 不同的并发模式和不同的并发模型能否以混合匹配的方式使用,或者某些并发模式是否仅与某些并发模型一起使用


  • 如果可能的话,您能提供一些支持您的回复或评论的参考资料吗?

    因此,并发计算模型是对并发系统进行数学建模和思考的一种方式。例如,一篇理论性很强的研究论文中的参与者模型并没有真正说明参与者是如何实现的,而仅仅是参与者的需求,它只是对并发系统进行数学推理的一种方式。模式只是构造代码的方法,与设计模式相同,只是用于并发。在我看来,演员的区别有点模糊,如果使用akka之类的东西,那么代码的模式就是“让一切都成为演员”

    并发模式只是一种设计模式,它使用某些系统原语/语言特性来生成正确的并发实现

    计算模型是对某些计算进行数学推理的一种方式

    所有并发模式都基于底层计算模型。在计算机科学中,您应该能够从数学/逻辑上证明程序的正确性,因此您可以说所有并发模式在实现之前都可以被证明或基于某种抽象的数学模型

    也许这是一个不完美的例子,但许多语言中的lambda和闭包都是基于lambda演算的。所以,如果我告诉你使用lambda作为对网络请求的回调,我所说的模式依赖于lambda演算的计算模型

    编辑


    您可以在代码中任意混合匹配的计算模型和模式,您很可能会这样做。也就是说,一些模式,比如演员模式,如果你使用它们的话,几乎就是一颗银弹。例如,参与者使锁定变得多余。如果你在写一篇研究论文,你可能不会混合计算模型,尽管我不是一名学者,所以我不太清楚:)

    来自官方的离题原因:询问我们推荐或查找书籍、工具、软件库的问题,教程或其他非站点资源对于堆栈溢出来说是非主题的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决问题所做的工作。嗨,蒂姆。如果一篇文章的某个离题部分被删除了,通常是为了防止问题的其余部分结束。这是给你的一个忙,请别管它了。你已经投了一票(不是我的)。