这部分的内容主要包括Epoll/select的封装,在封装好相应函数后,再使用一个类来管理相应事件,实现的文件为pollmgr.{h, cc}。 事件函数封装 可看到pollmgr.h文件下定一个了一个虚基类aio_mgr 1 class aio_mgr { 2 public: 3 virtual ...
分类:
其他好文 时间:
2016-08-18 01:09:45
阅读次数:
196
EPOLL_CREATE(2) Linux Programmer's Manual EPOLL_CREATE(2)NAME epoll_create, epoll_create1 - open an epoll file descriptorEPOLL(7) Linux Programmer's M ...
分类:
其他好文 时间:
2016-08-16 21:35:58
阅读次数:
134
注:本文是对众多博客的学习和总结,可能存在理解错误。请带着怀疑的眼光,同时如果有错误希望能指出。 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。 本文讨论的背景是Linux环境下的network IO。 一 ...
分类:
系统相关 时间:
2016-08-14 23:44:55
阅读次数:
231
在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于 select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd 数目越多,自然 ...
分类:
系统相关 时间:
2016-08-12 01:11:06
阅读次数:
279
1、poll函数原型:#include<poll.h>intpoll(structpollfdfds[],nfds_tnfds,inttimeout);参数说明:fds:是一个structpollfd结构类型的数组,用于存放需要检测其状态的Socket描述符;每当调用这个函数之后,系统不会清空这个数组,操作起来比较方便;特别是对于socket连接..
分类:
其他好文 时间:
2016-08-11 07:33:15
阅读次数:
162
IO操作多速度就下降IO数据的读和写IO的完成必须等到读事件(如磁盘拷贝每次要从磁盘查找数据)和写事件(允许写如写太快写满就要马上阻塞)的就绪IO是否高效:主要看一次IO中等的时间的比例的多少(等的时间比例越少越高效)就像钓鱼分两步:1等2钓(评价钓鱼技术高效是等的时..
分类:
编程语言 时间:
2016-08-11 07:30:22
阅读次数:
420
什么是epoll按照man手册的说法:是为处理大批量句柄而作了改进的poll。它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I/O就绪通知方法。epoll的相关系统调用intepoll_create(intsize);创建一个epoll的句柄。自从linux2.6.8之后,size参数是被忽略的。需要..
分类:
系统相关 时间:
2016-08-10 23:02:06
阅读次数:
332
池池是一组资源的集合,这组资源在服务器启动之初就被完全创建好并初始化,者称为静态资源分配。当服务器进入正式运行阶段,即开始处理客户请求的时候,如果需要相关资源,就可以直接从池中获取,无需动态分配池就是服务器管理系统资源的应用层设施,它避免了服务器对内核的频..
分类:
系统相关 时间:
2016-08-10 00:59:03
阅读次数:
210
select函数select函数主要是用来实现多路复用输入和输出模型,select系统调用是用来让我们监视多个文件句柄的状态变化的。程序会停在select处等待,直到被监视的文件句柄有一个或多个发生了状态。select函数:intselect(intnfds,fd_set*readfds,fd_setwritefds,fd_set*exce..
分类:
其他好文 时间:
2016-08-08 01:00:49
阅读次数:
224
IO 多路复用 I/O多路复用指:通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。 Linux Linux中的 select,poll,epoll 都是IO多路复用的机制。 select select最早于1983年出现在4.2BSD中 ...
分类:
其他好文 时间:
2016-08-07 06:19:31
阅读次数:
326