Actors、并发与异步编程:原理、实践与对比
1. 理解 Actor 与并发
1.1 发送者与失败回复
在 Actor 模型中,发送者是隐式的,我们通常无需担心它。不过,在对比 Java 和 Scala API 时,了解值的来源会很有帮助。特别要注意的是,当遇到未知消息时,需要使用 akka.actor.Status.Failure 进行回复。因为 Actor 自身即使失败也不会主动回复失败信息,所以若要通知请求者出现问题,就必须手动发送失败回复,这会使占位符 Future 标记为失败。
1.2 创建 Actor
Actor 与普通对象的访问方式不同,我们无法获取 Actor 的实例,不能直接调用其方法或改变其状态,而是通过传递消息来与之交互。这种基于消息传递的方式实现了封装,就像面向对象编程的提出者 Alan Kay 所定义的那样,消息传递是面向对象编程的重要组成部分。
在 Akka 中,对 Actor 的引用称为 ActorRef ,它是一个无类型引用,将 Actor 封装在抽象层之后,为我们提供了与 Actor 交互的机制。创建 Actor 可以使用 actorOf 方法,示例代码如下:
// Java
ActorRef actor = actorSystem.actorOf(Props.create(JavaPongActor.class));
/
Actor模型与异步编程实战解析
超级会员免费看
订阅专栏 解锁全文

827

被折叠的 条评论
为什么被折叠?



