为什么Akka演员在停止指令后打印?

为什么Akka演员在停止指令后打印?,akka,actor,Akka,Actor,我现在正在学习阿卡语,有些东西我不懂 我已经读过context.stop(self)停止参与者并忽略队列中的其余消息。这是真的吗 我有下面的演员,他收到“停止”信息,打印“要停止”,然后“我打印了一些东西,但我没有活着”。 如何打印第二行?我以为context.stop(self)会立即阻止演员 class Alice extends Actor { def receive = { case "stop" => println("gonna stop")

我现在正在学习阿卡语,有些东西我不懂

我已经读过
context.stop(self)
停止参与者并忽略队列中的其余消息。这是真的吗

我有下面的演员,他收到“停止”信息,打印“要停止”,然后“我打印了一些东西,但我没有活着”。 如何打印第二行?我以为
context.stop(self)
会立即阻止演员

class Alice extends Actor {
  def receive = {
    case "stop" =>
      println("gonna stop")
      context.stop(self)
      println("I printed something but I'm not alive")
    // other cases
  }
这是真的吗

是的,确实如此

如何打印第二行?我以为
context.stop(self)
会立即阻止演员

class Alice extends Actor {
  def receive = {
    case "stop" =>
      println("gonna stop")
      context.stop(self)
      println("I printed something but I'm not alive")
    // other cases
  }

stop
方法将阻止参与者处理其收件箱中的任何其他消息。但它不会立即跳出处理当前消息的方法。它允许参与者完成当前消息的处理,但之后不会处理其他消息。

我不太了解Akka,我认为说“停止”并不是一个例外情况-因此,当前接收迭代将执行到最后,参与者就是这样。好的,那就有意义了。谢谢