当前位置: 首页 > news >正文

伊春北京网站建设建设搜索引擎友好的网站

伊春北京网站建设,建设搜索引擎友好的网站,广州专业网站开发,计算机是学什么内容的select和poll都只提供了一个函数:select或者poll函数。而epoll提供了三个函数#xff0c;epoll_create,epoll_ctl和epoll_wait#xff0c;epoll_create是创建一个epoll句柄#xff1b;epoll_ctl是注册要监听的事件类型#xff1b;epoll_wait则是等待事件的产生。epoll除了提…select和poll都只提供了一个函数:select或者poll函数。而epoll提供了三个函数epoll_create,epoll_ctl和epoll_waitepoll_create是创建一个epoll句柄epoll_ctl是注册要监听的事件类型epoll_wait则是等待事件的产生。epoll除了提供select/poll那种IO事件的水平触发(Level Triggered)外还提供了边缘触发(Edge Triggered)这就使得用户空间程序有可能缓存IO状态减少epoll_wait/epoll_pwait的调用提高应用程序效率。水平触发(level-trggered)只要文件描述符关联的读内核缓冲区非空有数据可以读取就一直发出可读信号进行通知当文件描述符关联的内核写缓冲区不满有空间可以写入就一直发出可写信号进行通知LT模式支持阻塞和非阻塞两种方式。epoll默认的模式是LT。边缘触发(edge-triggered)当文件描述符关联的读内核缓冲区由空转化为非空的时候则发出可读信号进行通知当文件描述符关联的内核写缓冲区由满转化为不满的时候则发出可写信号进行通知两者的区别在哪里呢水平触发是只要读缓冲区有数据就会一直触发可读信号而边缘触发仅仅在空变为非空的时候通知一次LT(level triggered)是缺省的工作方式并且同时支持block和no-block socket.在这种做法中内核告诉你一个文件描述符是否就绪了然后你可以对这个就绪的fd进行IO操作。如果你不作任何操作内核还是会继续通知你的所以这种模式编程出错误可能性要小一点。传统的select/poll都是这种模型的代表水平触发和边缘触发模式区别读缓冲区刚开始是空的读缓冲区写入2KB数据水平触发和边缘触发模式此时都会发出可读信号收到信号通知后读取了1kb的数据读缓冲区还剩余1KB数据水平触发会再次进行通知而边缘触发不会再进行通知所以边缘触发需要一次性的把缓冲区的数据读完为止也就是一直读直到读到EGAIN为止EGAIN说明缓冲区已经空了因为这一点边缘触发需要设置文件句柄为非阻塞//水平触发ret read(fd, buf, sizeof(buf));//边缘触发while(true) {ret read(fd, buf, sizeof(buf);if (ret EAGAIN) break;}设置方法int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);epoll的事件注册函数它不同与select()是在监听事件时告诉内核要监听什么类型的事件而是在这里先注册要监听的事件类型。第一个参数是epoll_create()的返回值第二个参数表示动作用三个宏来表示EPOLL_CTL_ADD注册新的fd到epfd中EPOLL_CTL_MOD修改已经注册的fd的监听事件EPOLL_CTL_DEL从epfd中删除一个fd第三个参数是需要监听的fd第四个参数是告诉内核需要监听什么事struct epoll_event结构如下struct epoll_event {__uint32_t events; /* Epoll events /epoll_data_t data; / User data variable */};events可以是以下几个宏的集合EPOLLIN 表示对应的文件描述符可以读(包括对端SOCKET正常关闭)EPOLLOUT表示对应的文件描述符可以写EPOLLPRI表示对应的文件描述符有紧急的数据可读(这里应该表示有带外数据到来)EPOLLERR表示对应的文件描述符发生错误EPOLLHUP表示对应的文件描述符被挂断EPOLLET 将EPOLL设为边缘触发(Edge Triggered)模式这是相对于水平触发(Level Triggered)来说的。EPOLLONESHOT只监听一次事件当监听完这次事件之后如果还需要继续监听这个socket的话需要再次把这个socket加入到EPOLL队列里。使用示例使用ET的例子:nginx使用LT的例子:redis
http://www.pierceye.com/news/622418/

相关文章:

  • 桐城市建设局网站wordpress主题美容
  • 海阳市城建设局网站深圳高端设计公司名单
  • 高端网站制作系统网站开发的背景和意义
  • 假电影网站做注册长春seo代理计费
  • 网站代运营公司怎么做vip电影网站
  • 南京网站南京网站设计制作公司提高工作效率
  • 大连网站制作最好的公司萍乡商城网站建设
  • 做网站有2个前提条件_一个是网站班级优化大师app下载学生版
  • 自己做网站广告法wordpress自带评论表情
  • 苏州市城乡和建设局网站首页在线crm系统价格
  • php企业门户网站陕西高速公路建设网站
  • 网站商城系统建设方案h5页面制作网站易企秀
  • 绍兴网站建设方案报价seo外贸网站
  • 物流网站建设重要性建筑公司网址大全
  • 腾讯云注册域名后怎么做网站郑州网站建设大华伟业
  • 哪个小说网站可以做封面中国软件园排名前十
  • 门户网站建设预算表十大软件免费下载安装手机版
  • 河南省安阳市建设银行网站wordpress会员卡
  • 旅游类网站怎么做网站前端设计
  • 涉县网站设计商城网站建设推荐
  • 网站注册了域名然后怎么做网站运维是做什么的
  • 深圳学校网站建设哪家好企业宣传网
  • 静态网站如何添加关键词xp花生壳做网站
  • 南宁霸屏网站开发国际数据公司idc
  • 百色建设网站广西建设监理协会网站
  • 天河营销型网站建设惠东网站设计
  • 网站建设用什么科目qq腾讯官网登录入口
  • 做网站硬件手表网站哪个最好知乎
  • 网站制作教程及流程网站优化常见的优化技术
  • 漯河网站建设-千弘网络品划网络做网站