Actor模型

什么 是Actor模型

Actor 模型是个“古老”的东西,是1973年就提出的一个分布式并发编程模型。Actor模型在erlang语言中得到广泛支持和应用(顺便说一下,想要学习并发编程,erlang是首选)。目前java中
也出现了很多支持actor模型的库:akka、killim、jetlang等等。

Actor模型原理

Actor模型=(数据+动作)+消息。
Actor模型内部的状态由自己的动作来维护,外部线程不能直接调用对象的动作,也不能访问,必须通过消息才能触发动作,可以说,Actor模型是面向对象模型在并发编程领域的扩展。
使用Disruptor这样无锁队列我们也可以自己实现简单的Actor模型,让一个普通对象与外界的交互调用通过Disruptor消息队列实现,其本质是通过增加请求的缓冲区并异步处理来增加响应速度。

缺点

尽管Actor模型可以显著提高系统的并发,但在使用Actor模型过程中仍可能会碰到很多问题。典型的问题有:
* 死锁问题
* 队列溢出问题
* 细粒度控制问题。由于多个actor并不共享状态,仅通过消息传递来进行交流,所以不太适合实施细粒度的并行

发布了31 篇原创文章 · 获赞 12 · 访问量 9万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章