参考:https://blog.csdn.net/FX677588/article/details/74359823

优点:

  至此,Actor模型就可以看出这种消息机制的线程调用最大好处是非阻塞的,多个线程可以同时并发进行,无需等待被调用方法执行完成返回消息的响应。当然,看到此处大家或许跟我一样有一点困惑的地方,即万一我们后面的程序需要立即使用它返回的响应消息怎么办呢?其实这也算Actor存在的一点不足之处,需要我们在设计多线程前考虑你的程序到底适不适合这种机制,后面我们会再详细描述。

缺点:

  ①、每个Actor虽然是独立运行的,但是一旦同时接收到多个消息,一次也仅能处理一条消息,也就是按消息队列处理; 
  ②、Actor间异步执行,通过消息的传递实现协同。所以一个Actor内部出现执行错误很可能造成整个程序的错误——比如一个或多个其他Actors可能一直等待它反馈的消息。所以我们一定需要好好的处理Actors的例外事件,并且有容错机制及时反馈错误信息给其他等待中的Actors; 
  ③、Actor模型也存在死锁问题,也有可能遇到它们之间互相等待消息,所以可以使用超时设定的功能打破这个死锁情况; 
  ④、从上面的阐述我们也能窥探一二,并不是所有的应用开发都很好适合Actor模型。当且仅当我们可以将问题分为多个小模块,并且它们各自是独立运行的,仅个别地方需要交流。如果多线程间需要频繁互动,存在交叉的环境,其实Actor模型的效率优势也就不复存在了,也就失去了其消息调用并行执行的必要性。

Actor模型的优缺点相关推荐

  1. 关于actor模型的优缺点分析(1)

    actor model是1973年就提出的一个分布式并发编程模型,在erlang语言中得到广泛支持和应用.目前java中也出现了很多支持actor模型的库:akka.killim.jetlang等等, ...

  2. 关于actor模型的优缺点分析

    actor model是1973年就提出的一个分布式并发编程模型,在erlang语言中得到广泛支持和应用.目前Java中也出现了很多支持actor模型的库:akka.killim.jetlang等等, ...

  3. C++并发编程框架Theron(1)——Actor模型介绍

    1 说在前面的话 Theron是近些年发展起来的一个非常不错的C++并发编程框架,最近有详细阅读Theron的相关资料,发现它思想非常有条理,结构很明朗,非常适合项目开发.其实Theron国内研究还是 ...

  4. 下一代的 Actor 模型框架 Proto Actor

    ProtoAct 是下一代的 Actor 模型框架,提供了 .NET 和 Go 语言的实现,默认支持分布式,提供管理和监控功能.在过去几年,我们经常看到两种 Actor 模型方法相互竞争,首先是经典的 ...

  5. 并发机制:CSP vs Actor模型以及Golang实现

    作者:花与火山石 原文链接:https://blog.csdn.net/qq_32702033/article/details/104415434 CSP & Actor Model 本文将简 ...

  6. Boosting、Adaboost、AdaBoost模型的优缺点、提升树、梯度提升树GBDT

    Boosting.Adaboost.AdaBoost模型的优缺点.提升树.梯度提升树GBDT 目录 Boosting.Adaboost.AdaBoost模型的优缺点.提升树.梯度提升树GBDT Boo ...

  7. 在.NET中实现Actor模型的不同方式

    上周,<实现领域驱动设计>(Implementing Domain-Driven Design)一书的作者Vaughn Vernon,发布了Dotsero,这是一个使用C#编写的.基于.N ...

  8. java actor模型实例,详解Theron通过Actor模型解决C++并发编程的一种思维

    现今,单台机器拥有多个独立的计算单元已经太常见了,这点在服务器的处理器上表现尤为明显,据AMD的一张2012-2013服务器路线图显示,服务器处理器的核心数将在2013年达到20颗之多,合理的利用CP ...

  9. Akka入门(二)Akka的Actor模型如何满足现代分布式系统需求

    Actor模型允许开发者: 在不诉诸锁定的情况下实施封装. 使用协作实体的模型对信号做出反应,改变状态,并相互发送信号以推动整个应用程序向前发展. 不要担心与我们的世界观不匹配的执行机制. (一) 消 ...

最新文章

  1. Linux中的可重入函数和不可重入函数
  2. springMVC的使用
  3. 如何使用ThreadStackSpoofer隐藏Shellcode的内存分配行为
  4. 《系统集成项目管理工程师》必背100个知识点-05PMO的主要职能
  5. 浏览器插件-- Browser Helper Object(BHO) 一
  6. 尤大直播分享:vue3生态进展和展望
  7. 看完这篇买车不用坐引擎盖哭啦
  8. 数论 —— 毕达哥拉斯三元组
  9. 《神经网络和深度学习》系列文章五:用简单的网络结构解决手写数字识别
  10. Mybatis之执行自定义SQL举例
  11. 梅花传播业大展:Focussend将精准营销融入个性化邮件
  12. 智慧书-永恒的处世经典格言:121-160
  13. Js-Alert弹出框几种样式(一级)
  14. 考研英语 词根词缀单词1-10
  15. 自动驾驶技术之——无人驾驶中的CAN总线
  16. 蓝桥杯 算法提高 7-2求arccos值
  17. OPPOR9plusmA_官方线刷包_救砖包_解账户锁
  18. 8.7 Meta learning元学习全面理解、MAML、Reptile
  19. Android中安装ADB工具
  20. Pygame详解(八):locals 模块

热门文章

  1. 浏览器下载的excel文件损坏无法打开
  2. 查看服务器的ip地址
  3. 量化交易奇才大卫·哈丁的投资之路
  4. java中date和时间戳相互转换以及获取前一个小时的时间
  5. ArcGIS中拓扑规则英文对照说明
  6. UG\NX二次开发 获取曲线上某个位置的点坐标、切线矢量、主法线矢量、副法线矢量 UF_MODL_ask_curve_props
  7. 中国老百姓一生要交多少税?
  8. win7+sp1安装vs2013
  9. 各种类型sizeof大小及C++有符号数与无符号数进行比较
  10. [转]在线生成条形码(39码、EAN-13)