首页  

akka Actor     所属分类 akka 浏览量 695
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 区别