Actor模式之高性能并发框架的实现

原文转自:http://www.tanjp.com (即时修正和更新)

概念

Actor模式是一种并发模型,其目标是充分利用计算机多核的优势,把一个大问题分拆成多个小问题并发处理,或者把多个平行的问题并发处理。一个Actor指的是一个最基本的计算单元。它能接收一个消息并且基于其执行计算。Actor一大重要特征在于Actor之间相互隔离,它们并不互相共享内存。也就是说,一个Actor能维持一个私有的状态,并且这个状态不可能被另一个Actor所改变,改变私有状态只能由Actor自身的行为(函数)来操作。光有一个Actor是不够的,多个Actors才能组成系统。在Actor模型里每个Actor都有所有其他Actor地址,它们能够相互发送消息,并组成系统。

Actor模式中的Actor是并行运算的最小单元,也就是说同一个Actor的行为不可能被并行处理。

Actor对象由三个元素构成:数据(data),行为(behavior),信箱(mailbox)。而信件(mail)是Actor与Actor之间沟通的唯一途径。

一组系统由一个或多个舞台(stage)组成,每个舞台上面有多个Actor。Actor的数据流,从投递信件(mail)到信箱(mailbox)开始,Actor对象严格按先后次序读取信箱的信件,触发并执行相应的行为(behavior),这些行为会改变数据(data),也会投递新信件(post mail)到其他Actor或者自己(行为所属的Actor)。

多个Actor的触发的行为会被调度器(scheduler)分配到各个线程去执行。

(原文有画图说明)

 

关键点梳理

1、同一个Actor的行为不可能被并行处理,同一时刻一个Actor只会有一个行为被执行。

2、Actor与Actor之间的数据状态相互隔离,不可直接改变。

3、Actor的数据只会被该Actor的行为来改变,消息不会改变数据。

4、Actor与Actor唯一的沟通方式就是投递消息。

5、Actor的信件严格按先后次序被触发。

6、一个Actor是没有意义的,多个Actor才能组成高并发的系统。

 

C++接口

调度器(Scheduler)

采用了行为(O

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值