可以有许多演员。所有演员都是“同时”行动的。并发性是此模型的关键部分。
演员不能知道其他演员在想什么。移动信息的唯一方法是通过消息。(无共享状态)
演员可以接收消息,并通过以下方式对其进行处理:
使用其中的数据进行计算
将消息发送给其他演员
创建其他演员
忽略/丢弃该消息
这基本上使演员就像......人类。人们不知道彼此在想什么,必须发送消息传达信息,他们可以选择忽略传入的消息、考虑它们或与其他人交流。对于人类来说,随机的坏事会发生。许多人同时做着各种事情。要处理更多负载,可以添加更多人。
关于您的硕士项目,我建议您了解Erlang Web框架。编程语言Erlang基于Actor模型,被广泛用于可扩展系统中,包括电话交换和Facebook消息系统。
我不确定这个例子是否恰当,但我会尝试:
让我们想象一个典型的中东市场。有买家(假设他们只是步行的游客)和卖家。买家在市场上漫步,而卖家大声喊出自己商品的名称:地毯!香料!马匹!糖果!珠宝!等等……一些买家对特定种类的商品不感兴趣,于是走到下一个商店,但有些买家则产生了兴趣,并问道:“多少钱?”,卖家回答:“50美元”,买家:“能给我打个折吗?”,等等……
这里的演员是买家和卖家。卖家发送带有其商品类型的消息。买家可以跳过消息,或者发送询价消息。
Actor - 我们也可以称之为主体。演员正在处理对象。 演员被称为演员,因为他是一个行动者。
我会说,“演员是一种简单的方式,告诉计算机同时做多件事情。他们与其他同时告诉计算机做多件事情的方式不同,因为相较于其他替代方案,它们需要更少的资源,并且对于程序员来说更容易正确使用。”