并发的参与者模型和通信顺序过程之间有什么区别


26

我试图围绕并发的Actor模型与并发的通信顺序过程(CSP)模型之间的真正区别进行总结。

到目前为止,我能想到的最好的是,Actor模型允许更改节点的数量和布局,而CSP具有固定的节点结构。


1
另请参见第9频道〜14 :45上的演员模型,其中卡尔·休伊特(Carl Hewitt)在更深入地讨论了演员模型。他指出,参与者与CSP之间的区别在于,在CSP中使用沟通渠道与在参与者模型中直接沟通使用渠道不同。
Whymarrh

Answers:


18

我相信一个核心区别是,在CSP中,进程在接收到消息时进行同步(即,除非另一个进程处于接收模式,否则无法从一个进程发送消息),而Actor模型本质上是异步的(即,消息立即发送到其他进程的地址,而不管它们是否正在积极地等待消息)。

但是,应该有另一个更完善的答案。


1
那几乎就是我会写的答案。在原始的演员模型(Hewitt,Agha)中,接收过程甚至没有自动提供对发送者姓名的访问,尽管更现代的实现(例如Scala的演员)可以做到。另一个区别是,参与者可以在消息中发送参与者ID,如问题中所暗示的那样,而这在CSP中是不可能的。(也可以在pi演算中,但在CCS中则不可行。)
Dave Clarke 2010年

所以,基本上,这与邮箱有关吗?
约尔格W¯¯米塔格

那么这里列出的区别又如何呢:en.wikipedia.org/wiki/…en.wikipedia.org/wiki/…?对于早期版本的CSP,另一个重要的区别是无限的不确定性(请参阅那些链接)。
Blaisorblade

2
我不确定这是否是核心区别,因为CSP可以具有允许异步消息发送的缓冲通道。也许更多地是关于进程ID,在CSP中,进程是匿名的,而参与者是命名的。
CMCDragonkai 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.