Scala Akka Actors act()函数

时间:2012-07-12 23:18:35

标签: scala akka

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

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()函数吗?

1 个答案:

答案 0 :(得分:6)

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