Scala Akka Actors act()函数

use*_*739 2 scala akka

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

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

val myActor = system.actorOf(Props[MyActor], name = "myactor")
Run Code Online (Sandbox Code Playgroud)

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

class HelloWorldActor extends Actor {
  def act() = {

  }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以打电话:

val myActor = new HelloWorldActor
myActor.start()
Run Code Online (Sandbox Code Playgroud)

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

小智 6

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