2

我读过的所有教程都是这样工作的:

class HelloWorldActor extends Actor {
  def receive = {
    case "Hello" => self.reply("World")
  }
}

val myActor = system.actorOf(Props[MyActor], name = "myactor")

我想知道 AKKA 是否支持 Actor 类中的 act() 函数,如下所示:

class HelloWorldActor extends Actor {
  def act() = {

  }
}

然后你可以打电话:

val myActor = new HelloWorldActor
myActor.start()

我想这样做是因为我的演员不会收到任何消息。它只是自己工作。那么我可以在我的 AKKA 演员中使用 act() 函数吗?

4

1 回答 1

6

在 Akka 中,您的 actor 应该在使用系统创建后自动启动。但听起来好像您想像使用我们都知道的 Java 中的普通线程一样使用 actor。我会说,从惯用的角度来看,这不是正确的方法。您当然可以只向您的演员添加一条开始消息,在创建后将其发送给演员,然后在处理程序中进行处理。但是,如果您不想对任何消息做出反应,也许您应该考虑使用普通线程或 Future 而不是演员?

于 2012-07-12T23:56:56.030 回答