libev是一个事件驱动库,底层是基于select、epoll、kqueue等I/O复用接口。所谓事件驱动库,就是用户定义一个事件以及改事件发生时调用的函数,该库会监听该事件,并在事件发生时调用相应的函数。 libev提供了很多事件监听器(watcher),最主要的有IO、时间以及信号监听器。当某一 ...
分类:
其他好文 时间:
2016-04-10 19:25:49
阅读次数:
347
前一篇介绍了epoll的LT模式,LT模式注意epollout事件在数据全部写成功后需要取消关注, 或者更改为EPOLLIN。 而这次epoll的ET模式,要注意的是在读和写的过程中要在循环中写完或者读完所有数据, 确保不要丢掉一些数据。 因为epoll ET模式只在两种边缘更改的时候触发,对于读事 ...
分类:
其他好文 时间:
2016-04-10 06:39:41
阅读次数:
210
一. Tornado是什么? Facebook发布了开源网络服务器框架Tornado,该平台基于Facebook刚刚收购的社交聚合网站FriendFeed的实时信息服务开发而来.Tornado由Python编写,是一款轻量级的Web服务器,同时又是一个开发框架。采用非阻塞I/O模型(epoll),主 ...
分类:
Web程序 时间:
2016-04-09 08:08:26
阅读次数:
283
一、 select poll 与 epoll的区别,可以参考以下三个链接 http://blog.csdn.net/turkeyzhou/article/details/8504554 http://www.cnblogs.com/Anker/p/3265058.html http://www.cn ...
分类:
其他好文 时间:
2016-04-06 20:18:04
阅读次数:
225
apache是异步阻塞处理请求;nginx是异步非阻塞。其具体差异,看看此人解释。http://blog.csdn.net/xifeijian/article/details/17385831。说的很详细。 Nginx的高并发得益于其采用了epoll模型,与传统的服务器程序架构不同,epoll是li ...
分类:
Web程序 时间:
2016-04-04 17:59:07
阅读次数:
254
ginx 不同于 Apache2 的一点就是,Nginx 采用单线程,非阻塞,异步 IO 的工作模型。 Apache2 对于每一个请求,都会创建一个新进程或线程,会浪费很多内存和 CPU 时间,而 Nginx 使用操作系统提供的IO多路复用技术(epoll), 在一个线程中处理所有的请求。当一个 I ...
分类:
Web程序 时间:
2016-04-04 17:57:31
阅读次数:
232
转自:http://blog.chinaunix.net/uid-24517549-id-4051156.html 什么是epoll epoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is ...
分类:
其他好文 时间:
2016-04-04 13:15:53
阅读次数:
197
在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK) 从字面上看, 意思是: * EAGAIN: 再试一次 * EWOULDBLOCK: 如果这是一个阻塞socket, 操作将被block * perr ...
分类:
其他好文 时间:
2016-04-04 13:03:57
阅读次数:
256
epol学习笔记 l epoll的相关系统调用 epoll_create() epoll_ctl() epoll_wait() l int epoll_create(int size); 创建一个epoll的句柄。 l int epoll_ctl(int epfd, int op, int fd, ...
分类:
其他好文 时间:
2016-04-03 23:39:07
阅读次数:
243
EPOLLRDHUP 在使用epoll的情况下:服务器端运行以下程序,当客户端调用close()关闭后,服务器端会执行满足 evs[i].events & EPOLLIN 条件的代码 for (;;){ int n = epoll_wait(epfd, evs, 20, -1); for (int ...
分类:
其他好文 时间:
2016-04-03 18:51:24
阅读次数:
168