摘要: 关于epoll 上一篇博文提到过select的使用方法。今天说一下epoll的使用方法。epoll相对于select而言有如下几个方面的优点:对于要监听的fd的数量没有限制内核会保存需要监听的fd,无需每次都进行初始化只返回产生事件(可读取、可写等)的fd,无需遍历监听的所有fd 使用epoll主要用进行一步阻塞的调用。其基本的步骤为:首先通过epoll_create调用创建一个epoll文件描述符(epfd)通过epoll_ctl对这个描述符进行设置,具体包括:添加需要监听的文件描述符、socket描述符等;设置相关监听的类型(例如监听是否可读:EPOLLIN,)等通过epoll_wait进 阅读全文
posted @ 2013-10-06 13:44 冷暖自知01 阅读(381) 评论(0) 推荐(0) 编辑
摘要: 向来是一个比较懒惰的人,但是突然觉得应该整理一些东西,写写博客什么的。只是不知道从何处开始。昨天在看松本行弘的《代码的未来》中关于C10K问题的分析,其中涉及到了slecet函数。select函数之前只是知道,没怎么了解。然后看了一下,整理如下:应用场景:在很多时候,一个进程要处理很多个文件的读写(包括socket文件),然后对于这些文件的访问经常会因为各种原因导致进程被阻塞。为了使进程不被阻塞在单个文件的访问上,可以使用select函数。首先将多个需要访问的文件描述符设置到相关的fd_set,并设置相应的超时时间,然后调用select函数当这些文件中,有文件可用或者超时时间已到后,sel.. 阅读全文
posted @ 2013-09-08 01:04 冷暖自知01 阅读(2085) 评论(0) 推荐(1) 编辑