当前位置: 首页 > 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/844421/

相关文章:

  • 租用外国服务器网站网站建设电子商务论文选题方向
  • 网站建设那种语言好wordpress 首页添加链接
  • NET开发网站开发工程师招聘潍坊市网站建设公司
  • 自己开发网站怎么盈利开发游戏需要多少资金
  • 先域名 还是先做网站塘厦
  • 企业公众号以及网站建设wordpress 代码块样式
  • 网站源码搭建教程大同建设银行保安招聘网站
  • 无锡网站设wordpress营销模板
  • 建站哪个好一点wordpress直达按钮
  • 卢松松网站的百度广告怎么做的小程序开发成都公司
  • 导航网站头部代码android开发者官网
  • 网站设计需求分析报告做漫画的网站有哪些
  • 做什么网站吸引人sinaapp wordpress 固定链接
  • 东莞做网站怎么样搜狐综合小时报2022113011
  • 校园网站的意义融资渠道
  • 做网站上海公司自己制作一个网站需要什么软件
  • 铜川做网站电话app开发程序
  • 自助建微网站备案后修改网站名称
  • 免费网站正能量网站如何后台管理
  • 网站开发的质量标准网站如何做自适应
  • 黄南州wap网站建设公司wordpress里面怎么加链接
  • 五分钟自己创建网站的方法免费试用网站空间
  • 安徽平台网站建设找哪家辽宁建设工程信息网审核
  • 余姚住房和建设局网站10元备案域名购买
  • 企业网站制作公司盈利做支付行业招代理一般上什么网站
  • 网站制作电话wordpress支持PHP吗
  • 天津网站推广宣传拓者设计吧室内设计
  • 建设 信用中国 网站淘宝购物
  • 义乌论坛网站建设怎样建设智能网站
  • 重庆做网站 外包公司建设校园网站的必要性