Erlang中演员的基本解释

时间:2016-04-22 09:19:18

标签: multithreading concurrency parallel-processing erlang actor

我试图在Erlang中对演员进行非常基本的解释。它应该尽可能简单,但不要忽略理论的关键特征或它的Erlang实现。这是我的解释:

  

actor模型是并发计算的数学模型,它将 actors 视为并发计算的通用原语。 actor是一个计算实体,它响应它收到的消息,可以同时(1)向其他actor发送有限数量的消息,(2)创建有限数量的新actor,以及(3)指定用于接收的下一条消息的行为。

     

在Erlang中,每个actor都是虚拟机中的一个独立进程,由一个函数实现。进程通过向对方发送消息进行通信。每条消息都是明确,可追溯和安全的。邮件在邮箱中接收并按接收顺序存储。它们存储在那里直到接收过程将它们取出来进行读取。这称为异步消息传递。

     

Blockquote

你们觉得怎么样?可以吗?我应该添加或更改任何内容吗?感谢。

1 个答案:

答案 0 :(得分:1)

如果您没有将演员与Erlang进程混淆,我认为您会帮助自己。你开始使用维基百科对Actor模型的描述,只是为了无缝地开始编写Erlang进程,就好像它是同一个一样。 Actor模型是一种数学模型,可以用许多不同的方式实现,包括纯C或C ++低级实现。另一方面,Erlang进程是轻量级抢占式语言功能,它允许以比使用本机系统进程甚至线程更有效的方式并行运行大量进程。碰巧它们是在数学模型之后建模的,但它是基于specific requirements的设计决策。

如果你简单地将Actor模型作为一个数学模型单独讨论,并且只是在Erlang中如何实现它,指出Erlang特有的任何差异和特征,我认为它们会更好地融合在一起。