你会如何向非程序员解释演员?

时间:2010-02-25 15:50:43

标签: actor actor-model

嗯,标题就是这样:如果我在你面前坐着一个非技术/我的妈妈/十二岁的男孩/可卡犬并要求你向他们解释actors,你会在哪里开始?我问,因为我的master's project涉及到他们的程度非常大,每隔一天就会有人要我告诉他们我在做什么。当我和其他人谈论我的课程时并不是那么糟糕 - 通常这个概念是外来的但是可以理解 - 但最近我的室友,一位化学家,让我向她解释,并说我挣扎将是一个非常巨大的低估。

我正在寻找传达这个想法的某种解释,而不是技术基础。它可以是一个比喻,它不必是精确的 - 我只是想让他们理解我正在用它们做什么。有什么想法吗?

5 个答案:

答案 0 :(得分:10)

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

  • 演员无法知道其他演员的想法。移动信息的唯一方法是使用消息。 (没有共享状态)

  • 演员可以接收消息,并通过以下方式对其采取行动:

    • 使用其中的数据进行计算

    • 向其他演员发送消息

    • 创建其他演员。

    • 忽略/丢弃该消息。

这基本上让演员就像......人。人们不知道对方在想什么,他们必须发送信息来传达信息,他们可以选择忽略传入的信息,考虑信息或与其他人沟通。随机坏事可能发生在人身上。很多人都在同一时间做事。要处理更多负载,请添加更多人。

关于您的主人项目,我建议了解Erlang Web框架。编程语言Erlang基于Actor模型,在包括电话交换机......和Facebook messaging system在内的可扩展系统中发挥了巨大作用。

答案 1 :(得分:5)

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

  

演员是在家里做一些工作的人。每个房子前面都有一个邮箱。   为了相互沟通并完成工作,在演员之间发送消息。

答案 2 :(得分:1)

我不确定这会不错,但我会尝试:

让我们想象一个经典的中东市场。有买家(假设他们只是步行游客)和卖家。买家正在走过市场,卖家会喊出他们的商品名称:地毯!种类!!!马匹!!! Сandies!宝石! ......有些买家对特定商品不感兴趣并去了下一家商店,但有些买家对此感兴趣,并问:“多少钱?”,卖家:“50 $”,买家:“你能给我折扣吗?“等等......

演员是买家和卖家。卖家正在发送包含其商品类型的消息。买方可以跳过邮件,也可以发送要价的邮件。

答案 3 :(得分:1)

演员 - 我们也可以称之为主题。演员们正在用对象做点什么。 演员就这么称呼,因为这是一个行动的人。

答案 4 :(得分:0)

我会说,“演员是一种告诉计算机同时执行多项操作的简单方法。它们不同于其他方式告诉计算机同时执行多项操作,因为它们占用的资源更少而不是某些替代方案,因为它们比其他一些替代方案更容易让程序员正确使用。“