我正在评估Akka的分布式服务层,下面的例子打印Hello {n} 10次,但是一个接一个地打印.根据我的理解,这是一个Akka演员的故意,所以我从哪里开始使其并发?
import akka.actor._ object HelloActor { case class SayHello(message: String) } class HelloActor extends Actor { def receive = { case HelloActor.SayHello(message) => Thread.sleep(1000) println(message) } } object Main extends App { val system = ActorSystem("ActorSystem") val hello = system.actorOf(Props[HelloActor]) for (i <- 1 to 10) { hello ! HelloActor.SayHello(s"Hello $i") } }
我已经尝试过从Main类创建多个actor但是在某种程度上感觉不对,我不应该只调用actor然后它自己处理并发/产生更多的actor吗?任何人都可以提供一个这样的例子(最好是修改上面的代码).我一直在阅读和阅读,但立刻感觉很多,我觉得我在某处错过了一个关键概念.