下面都是以网络读数据为例 【2阶段网络IO】 第一阶段:等待数据 wait for data 第二阶段:从内核复制数据到用户 copy data from kernel to user 下面是5种网络IO模型 【阻塞blocking IO】 两阶段全程阻塞 recvfrom -> [syscall ...
分类:
其他好文 时间:
2019-06-26 09:32:55
阅读次数:
182
linux应用程序编程应该要学习的函数使用列表linux应用层编程相关的manpage,具体包括的命令和函数,请参考https://www.kernel.org/doc/man-pages/select()、pselect()、poll()、epoll(),epoll_create(),epoll_wait(),epoll_ctl(),close()==同时监控多个fd的输入、输出inotify机
分类:
系统相关 时间:
2019-03-24 00:21:08
阅读次数:
205
Nginx是一个高性能的HTTP和反向代理服务。是一款轻量级的Web服务器和反向代理服务器及电子邮件代理服务器,特点:占有内存少,并发能力强,epoll:在Linux2.6内核中提出的select和poll的增强版本支持水平触发LT和边缘触发ET,最大的特点在于边缘触发,它只告诉进程哪些fd刚刚变为就需态,并且只会通知一次使用“事件”的就绪通知方式,通过epoll_ctl注册fd,一旦该fd就绪,
分类:
其他好文 时间:
2019-03-16 23:28:47
阅读次数:
202
本文写于2017 02 26,从老账号迁移到本账号,原文地址:https://www.cnblogs.com/huangweiyang/p/6444746.html select、poll、epoll三组系统调用都能同时监听多个文件描述符,它们将等待由timeout参数指定的超时时间,直到一个或多个 ...
分类:
其他好文 时间:
2019-02-06 09:21:05
阅读次数:
179
侦听 fd 与客户端 fd 是如何挂载到 EPFD 上去的 同样的方式,要把一个 fd 挂载到 EPFD 上去,需要调用系统 API epoll_ctl ,搜索一下这个函数名。在文件 ae_epoll.c 中我们找到 aeApiAddEvent 函数: 当把一个 fd 绑定到 EPFD 上去的时候, ...
分类:
其他好文 时间:
2019-01-15 14:01:22
阅读次数:
198
微信公众号:郑尔多斯关注可了解更多的Nginx知识。任何问题或建议,请公众号留言;关注公众号,有趣有内涵的文章第一时间送达! 内容回顾 上一篇文章我们介绍了Nginx的epoll初始化过程。从这一篇文章开始我们继续介绍ngx_epoll_module的源码,包括添加事件,删除事件,触发事件等。 ng ...
分类:
其他好文 时间:
2018-12-26 13:33:44
阅读次数:
137
I/O多路复用指:通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。 ...
分类:
其他好文 时间:
2018-08-31 21:24:16
阅读次数:
182
一、linux的IO复用函数同一个线程内,多个描述符的IO操作,能够并发交替地顺序执行。epoll只提供三个函数:int epoll_create(int size); #创建epoll句柄int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);关联被监听的事件和epool句柄(可以通过op参数来增加,删除和修改关联关系
分类:
其他好文 时间:
2018-07-24 10:18:02
阅读次数:
147
#include #include #include #include #include #include #include #include #include #include #include #include #define MAXEVENTNUM 5000 #define LISTENNUM... ...
分类:
其他好文 时间:
2018-07-21 11:58:27
阅读次数:
169
网上找到了一份基于epoll的简单的多人聊天室代码,感觉对epoll的学习十分有用,代码会附在后面,简单看一下epoll相关的API。 epoll相关的API主要有三个:epoll_create、epoll_ctl和epoll_wait int epoll_create(int size); 参数s ...
分类:
其他好文 时间:
2018-04-20 00:04:36
阅读次数:
196