tell() 在 Akka actor 系统中如何工作?

How does tell() work in Akka actor system?

我看文档有点困惑here and here

receive() 是一个不接受任何参数的方法,returns 是一个偏函数。 tell() 是 returns Unit 和 'sends' 消息的方法。现在要按照我的理解处理消息,必须发生两件事:

  1. receive() 应该由 tell
  2. 调用
  3. 消息被传递给 receive()
  4. 返回的部分函数

现在如果部分函数返回到使用 tell() 的地方,那么基于消息的通信如何工作?为什么操作不在 actor 内部执行?

因为它是内部结构,所以没有文档,但您可以在此处自行查看源代码:https://github.com/akka/akka/blob/master/akka-actor/src/main/scala/akka/actor/ActorCell.scala。从 tell 如何将消息发送到邮箱、如何从中提取消息、如何调用 receive 等所有内部细节都在这里。

希望它能回答您的问题。