##其余监控器 最主要的几个监控器搞定了。其余的我以为比较能够看的还有ev_child和ev_stat。其实和以前的三个基本原理的是同样。暂不赘述。将来可能补充。网络
##Libev中的Tips 若是将Libev当成组件去用的话。官方文档是一份很好的选择。这里说下看Libev过程当中的感觉。框架
若是使用Libev但又以为它没有提供必要的功能而要去该其代码。可能Libuv为咱们作了一个很好的示例。Libuv以前是用Libev做为其底层事件库。后来做者重写了本身的一套网络库Libuv。严格意义上说,Libev仅仅是一个事件模型框架,并不能算上是一个完整的网络库,正由于如此他才提供了如此多的事件类型。而对于网络库可能最重要的就是定时器、IO、以及信号事件。固然网络还包括了socket、收发控制等内容。所以,个人感受是能够将Libev当成一个很好的学习对象,不管是其设计思想、仍是代码中个各类小tips、还有其对跨平台支持的方法都是很好的示例。虽然用宏包裹的比较严密,只要稍加分析,理清其思路仍是比较容易的。socket
将Libev和以前的Redis-ae进行对比。能够发现Libev在设计思想上更完整,提供的服务也更全,可是作的检测多了,逻辑复杂了,消耗的资源也一定比简单的封装更多。从这个两个模型能够看出事件模型的框架都是:学习
取得一个合适的时间,用这个时间去poll。而后标记poll以后pending的文件对象。poll出来后判判定时器而后统一处理pending对象设计
这里绘制一个总体的结构图,不是很规范UML或者其余什么学术的图,只是一个帮助理解的过程:对象
至此Libev的分析差很少完成了,主要去了解实现的思路。具体如何实现以及从什么样的角度去设计。其结果须要在生产环境中去检验。事件