akka Actor
所属分类 akka
浏览量 790
akka 核心 Actor
Actor模型
解决并发计算的一个数学模型
最早 1973年Carl Hewitt、Peter Bishop和Richard Seiger的论文中出现
受物理学 广义相对论(general relativity ) 和 量子力学(quantum mechanics)所启发
Actor间的相互调用(tell, ask)
tell 发送一个消息到目标Actor后立刻返回
ask 发送一个消息到目标Actor,并返回一个Future对象,可以通过该对象获取结果
Tell Fire-forget
target.tell(message, getSelf());
Ask Send-And-Recieve-Future
停止一个Actor有三种方法
调用ActorSystem或getContext()的stop方法
给目标发送一个毒药消息:akka.actor.PoisonPill.getInstance()
给目标发送一个Kill消息: akka.actor.Kill.getInstance()
当使用前两种方法时,Actor的行为
挂起它的Mailbox,停止接受新消息
给它所有的子Actor发送stop命令,并等待所有子Actor停止
最终停止自己
kill 抛出 ActorKilledException 给父层
一般不应该依赖 PoisonPill和Kill去关闭Actor
推荐自定义关闭消息,交由Actor处理
上一篇
下一篇
scala中的classOf isInstanceOf asInstanceOf
大数据scala基础
快学scala要点
Akka 与 微服务
class 和 case class 及 构造器参数
scala :=>Unit 与 :()=>Unit 区别