9

好吧,标题差不多就是这样:如果我坐在你面前让一个非技术人员/我妈妈/12 岁男孩/可卡犬坐在你面前,让你向他们解释演员,你会从哪里开始?我问是因为我的硕士项目在很大程度上涉及到他们,每隔一天就会有人要求我告诉他们我在做什么。当我在我的课程中与其他人交谈时,情况还不错——通常这个概念是陌生的,但可以理解——但最近我的室友,一名化学家,让我向她解释,并说我很挣扎会是一个非常巨大的轻描淡写。

我正在寻找某种能够传达这个想法的解释,而不是技术基础。它可以是一个隐喻,它不必很精确——我只是想让他们明白我在用他们做什么。有任何想法吗?

4

5 回答 5

10
  • 可以有很多演员。所有演员“同时”行动。并发性是该模型的关键部分。

  • Actor 无法知道其他 Actor 在想什么。移动信息的唯一方法是使用消息。(无共享状态)

  • 参与者可以接收消息,并通过以下方式对它们采取行动:

    • 用其中的数据进行计算

    • 向其他参与者发送消息

    • 创造其他演员。

    • 忽略/丢弃消息。

这基本上使演员就像……人。人们不知道彼此在想什么,他们必须发送消息来传达信息,他们可以选择忽略传入的消息、考虑它们或与其他人交流。随机的坏事可能发生在人们身上。很多人都在同一时间做事。要处理更多负载,请增加更多人员。

关于你的硕士项目,我建议了解 Erlang Web 框架。Erlang编程语言基于 Actor 模型,在可扩展系统(包括电话交换机...和​​Facebook 消息系统)中使用效果非常好。

于 2010-02-25T18:33:12.793 回答
5

我将尝试一个简单的比喻:

演员是在他们的房子里做一些工作的人。每个房子前面都有一个邮箱。为了相互交流并完成工作,参与者之间会发送消息。

于 2010-02-25T16:07:45.980 回答
1

我不确定这会不会很好,但我会尝试:

让我们想象一个经典的中东市场。有买家(假设他们只是步行的游客)和卖家。买家在市场上行走,卖家大声喊出他们商品的名称:地毯!物种!!!马匹!!!糖果!宝石!!!以此类推……有些买家对某种商品不感兴趣,就去下一家店,但有些买家产生了兴趣,问:“多少钱?”,卖家:“50美元”,买家:“你能给我打折吗?”等等……

演员是这里的买家和卖家。卖家正在发送带有其商品类型的消息。买家可以跳过消息,也可以发送消息询问要价。

于 2010-02-25T18:13:03.370 回答
1

演员 - 我们也可以称之为主题。演员正在对物体做一些事情。演员是这样称呼的,因为它是在演戏的人。

于 2010-02-25T19:04:37.597 回答
0

我会说,“Actor 是一种告诉计算机同时做多件事情的简单方法。它们与告诉计算机同时做多件事情的其他方式不同,因为它们占用的资源少于某些替代方案,因为它们比其他一些替代方案更容易让程序员正确使用。”

于 2010-02-25T19:57:36.353 回答