我已经编写了一个启动actor、终止它并完成执行的示例代码。
这段代码会输出:
object PureAkka {
def main(argv : Array[String]) = {
val actorSystem : ActorSystem = ActorSystem("main")
val actor : ActorRef = actorSystem.actorOf(Props( new Actor {
override def receive = {
case x => println(x)
}
override def preStart() = println("prestart")
override def postStop() = println("poststop")
} ) )
Thread.sleep(15000)
actor ! PoisonPill
}
}
这段代码会输出:
[info] prestart
[info] poststop
但是它不会停止,直到我使用Ctrl-C杀死进程。
应用程序在等待什么?如何以正确的方式停止它?