服务端编程
寝不安枕食无味
欲有突破事非难,偷心不死费纠缠;
此心不废如贼丐,欲求出离徒枉然;
志士当效古圣者,断臂求法若等闲;
余者检点二三事,唯有勤奋可补天;
寝不安枕食无味,蓦然回首小众山。
展开
-
Reactor与Proactor的概念
1、标准定义两种I/O多路复用模式:Reactor和Proactor一般地,I/O多路复用机制都依赖于一个事件多路分离器(Event Demultiplexer)。分离器对象可将来自事件源的I/O事件分离出来,并分发到对应的read/write事件处理器(Event Handler)。开发人员预先注册需要处理的事件及其事件处理器(或回调函数);事件分离器负责将请求事件传递给事件处理器。两个转载 2015-03-17 17:54:53 · 330 阅读 · 0 评论 -
两种高性能I/O设计模式(Reactor/Proactor)的比较
这篇文章探讨并比较两种用于TCP服务器的高性能设计模式. 除了介绍现有的解决方案, 还提出了一种更具伸缩性,只需要维护一份代码并且跨平台的解决方案(含代码示例), 以及其在不同平台上的微调. 此文还比较了java,c#,c++对各自现有以及提到的解决方案的实现性能.系统I/O 可分为阻塞型, 非阻塞同步型以及非阻塞异步型[1,2]. 阻塞型I/O意味着控制权只到调用操作结束了才会回到调转载 2015-03-17 17:53:01 · 281 阅读 · 0 评论 -
水平触发和边缘触发的区别
在linux的IO多路复用中有水平触发,边缘触发两种模式,这两种模式的区别如下: 水平触发:如果文件描述符已经就绪可以非阻塞的执行IO操作了,此时会触发通知.允许在任意时刻重复检测IO的状态,没有必要每次描述符就绪后尽可能多的执行IO.select,poll就属于水平触发. 边缘触发:如果文件描述符自上次状态改变后有新的IO活动到来,此时会触发通知.在收到一个IO事件通知后要尽转载 2015-03-17 17:57:07 · 510 阅读 · 0 评论