http://lgone.com/html/y2010/767.html
libevent 的一个例子。
http://blog.163.com/ecy_fu/blog/static/444512620094291011129/
基于windows平台的libevent的流程的分析。看完之后能够明白整个库的流程。
http://www.javaeye.com/topic/332727
libevent 主要结构体分析。
http://dev.firnow.com/course/3_program/c/c_js/20100107/187938_2.html
http://g.51cto.com/flower454/53967
http://blog.csdn.net/sparkliang/archive/2009/12/11/4985955.aspx
这个blog写了一个系列的libevent的分析。
http://blog.csdn.net/chong232/archive/2010/07/11/5675553.aspx
libevent是如何与具体事件引擎进行结合的--以select为例
libevent为什么要有消息队列和激活链表:
因为libevent的实现是单线程的,在网络连接高并发的情况下,由于来不及同步处理,请求往往会发生堵塞,通过使用消息队列,我们可以异步处理请求,从而缓解系统的压力。
参见:
Web应用中为什么会需要消息队列?主要原因是由于在高并发环境下,由于来不及同步处理,请求往往会发生堵塞,比如说,大量的insert,update之类的请求同时到达mysql,直接导致无数的行锁表锁,甚至最后请求会堆积过多,从而触发too many connections错误。通过使用消息队列,我们可以异步处理请求,从而缓解系统的压力。在Web2.0的时代,高并发的情况越来越常见,从而使消息队列有成为居家必备的趋势,相应的也涌现出了很多实现方案,像Twitter以前就使用RabbitMQ实现消息队列服务,现在又转而使用Kestrel来实现消息队列服务,此外还有很多其他的选择,比如说:ActiveMQ,ZeroMQ等。