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

Sam*_*war 9 actor-model actor

好吧,标题就是这样:如果我在你面前坐着一个非技术/我的妈妈/十二岁的男孩/可卡犬并要求你向他们解释演员,你会从哪里开始?我问,因为我的主人的项目在很大程度上涉及他们,每隔一天有人要我告诉他们我在做什么.当我和其他人谈论我的课程时并不是那么糟糕 - 通常这个概念是外来的但是可以理解 - 但最近我的室友,一位化学家,让我向她解释,并说我挣扎将是一个非常糟糕的轻描淡写.

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

Joe*_*erg 10

  • 可以有很多演员.所有演员都"同时"行事.并发性是此模型的关键部分.

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

  • 演员可以接收消息,并通过以下方式对其进行操作:

    • 用它们中的数据进行计算

    • 向其他演员发送消息

    • 创造其他演员.

    • 忽略/丢弃消息.

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

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


Dar*_*rio 5

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

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