Akka中actorOf方法分析
一直以来都对Akka中的actor创建过程有点迷糊,说是知道但是又有所不清楚,这次有空把源码翻了一下,顺便记录下自己的理解,有错误的地方还请指正
actorOf方法
大家应该都知道一般我们要创建actor都要去调用context.actorOf方法或者actorSystem.actorOf这两种方法,其中actorSystem创建的actor会直接挂在user路径下,也是用户可以创建的最高层次的actor节点。通过观察源码发现,actorContext和actorSystem都继承了ActorRefFactory,这里是真正发起actorOf方法的所在地
abstract class ActorSystem extends ActorRefFactory{...}
trait ActorContext extends ActorRefFactory{...} //ActorContext 就是我们在actor中可以直接调用的context对象
先看一下actorOf的方法定义
def actorOf(system: ActorSystemImpl, props: Props, supervisor: InternalActorRef,
path: ActorPath,systemService: Boolean, deploy: Option[Deploy],
lookupDeploy: Boolean, async: Boolean): InternalActorRef
几个参数含义大概如下
- system和props无须赘言,自然就是我们创建actor必备的那两个参数
- supervis