【发布时间】:2013-11-29 18:07:36
【问题描述】:
我正在评估 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 类创建多个演员,但不知何故感觉不对,我不应该只调用演员然后它自己处理并发/产生更多演员吗?谁能提供一个例子(最好修改上面的代码)。我一直在阅读和阅读,但感觉需要立即吸收很多东西,我觉得我只是在这里某个地方错过了一个关键概念。
【问题讨论】:
-
查看路由器以了解您要执行的操作:doc.akka.io/docs/akka/2.2.0/scala/routing.html。而且您不想在您的
receive中添加sleep。 -
@sourcedelica 这正是我所追求的,谢谢。如果您想提交作为答案,我会接受吗?