Actor的生命周期
Empty Path
通过ActorSystem的actorOf方法创建一个新的Actor并返回其ActorRef:
该Actor的path被确定则不会在被分配出去;
该Actor拥有一个随机的UID;
该Actor是一个Actor实例;
在实例的过程中调用该Actor的preStart方法。
val system = ActorSystem("sys")
val actor = system.actorOf(Props[Worker],"path")
其中——ActorSystem需要一个path,actor也需要一个path。
Actor Incarnation
Actor的具象实体:
是path指向的;
有固定的UID;
有Mailbox。
Actor Instance
可以Resume
重新开始运行。
也可以Restrat
由原先的Actor实例调用preRestart方法;
生成一个新的Actor实例;
之前的Actor实例被新的实例所取代;
由新的Actor实例调用postRestart方法。
ActorRef
指代了Actor实体;
隐藏了Actor的实例;
拥有path和UID。
ActorSelection
知道了一个对应的path;
终结一个Actor
通过调用stop、Context.stop或者PosionPill来使Actor的实例调用对应的postStop方法;
终止所有对应的watchers;
之前被约订path可以继续被使用了。