bla*_*ank 44 concurrency message-passing shared-memory
如果我错了,请纠正我,但我很惊讶以前没有问过这里......
Chr*_*man 99
这是一个非常简单的区别.在共享内存模型中,多个工作程序都对相同的数据进行操作.这开辟了许多并行编程中常见的并发问题.
消息传递系统使工作人员通过消息系统进行通信.消息使每个人都分开,这样工作人员就无法修改彼此的数据.
通过类比,假设我们正在与一个项目团队一起工作.在一个模型中,我们都围着桌子挤满了所有的论文和数据.我们只能通过改变桌子上的东西进行交流.我们必须要小心,不是所有人都试图同时对同一块数据进行操作,否则会让人感到困惑,事情会变得混乱.
在一个消息传递模型中,我们都坐在我们的办公桌旁,用我们自己的一套文件.当我们想要时,我们可以将纸张作为"消息"传递给其他人,并且该工作人员现在可以用它做他们想做的事情.我们只能访问我们面前的任何内容,因此我们永远不必担心有人会在我们处理它们的过程中达到并改变其中一个数字.
好吧,傻比喻!
小智 17
共享内存允许最大的通信速度和便利性,因为它可以在计算机内以内存速度完成.共享内存比消息传递更快,因为消息传递系统通常使用系统调用来实现,因此需要更耗时的内核干预任务.
小智 5
消息传递是证明数据合理性的好方法,但它具有较慢的响应时间以加快通信速度。但在共享内存模型中,数据是从一个内存中提取的,一个工作组可以对相同的数据进行不同的工作