Akka中actor的创建过程

本文深入分析Akka中的actorOf方法,详细解释了从dispatcher和mailbox的创建到最终的ActorCell初始化的过程,包括dispatchers的配置解析、mailbox的工厂类以及LocalActorRef与RepointableActorRef的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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必备的那两个参数
  • supervisor是该actor的监督者,也就是父亲,ActorPath是actor的路径,deploy是actor的配置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值