Chinaunix首页 | 论坛 | 博客
  • 博客访问: 177139
  • 博文数量: 28
  • 博客积分: 30
  • 博客等级: 民兵
  • 技术积分: 954
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-21 10:28
个人简介

站在巨人的肩膀是骗人的

文章分类

全部博文(28)

文章存档

2013年(28)

分类: C/C++

2013-03-11 13:05:58

http://blog.chinaunix.net/uid-26717867-id-3513542.html再说说我对actor model的认识。

个人认为,任何复杂的系统,要想进一步优化,都必须对业务有深刻的理解。

cs模式:
对于整个系统,最多的协议应该是Client-----Request----->Server, Server-----Response----->Client了。这个流程其实就是,[客户端]请求[服务端]说帮我服务一下,[服务端]根据这个[客户端]对应的[服务端数据]去处理,然后告诉[客户端]说我已经帮你处理好了。

宏观地讲:
[服务端]就是不断地根据[服务端数据]去计算。很显然,[服务端数据]变得独立起来,这个时候就有人假设,既然[服务端数据]是独立的,为什么我不能让每个access[服务端数据]的行为排队起来,这样就不需要加锁来保护数据结构了,而这个排队是用用户态的lock free实现的队列,这就解决了使用critical section/spin_lock造成cpu busy loop的问题。这种假设成立的条件是:每个access的行为都是Client-----Request----->Server触发的。而这个行为触发的频率相比服务成千上万的服务端频率是比较低的。所有就有了单一对象串化处理,成千上万对象并发处理的actor model。
阅读(1762) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~