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

福建省龙岩市新罗区建设局网站小程序模版

福建省龙岩市新罗区建设局网站,小程序模版,wordpress 缩略图插件,建立网站加强家园沟通和联系的利弊五种IO模型 1、阻塞等待#xff1a;在内核将数据准备好之前#xff0c;系统调用会一直等待。所有的套接字#xff0c;默认都是阻塞方式。 2、非阻塞等待#xff1a;如果内核没有将数据准备好#xff0c;系统调用仍然会返回#xff0c;并且会返回EWUOLDBLOCK或者EAGAIN错…五种IO模型 1、阻塞等待在内核将数据准备好之前系统调用会一直等待。所有的套接字默认都是阻塞方式。 2、非阻塞等待如果内核没有将数据准备好系统调用仍然会返回并且会返回EWUOLDBLOCK或者EAGAIN错误码。 3、信号驱动内核将数据准备好的时候使用SIGIO信号通知应用程序进行IO操作。 4、多路转接多路转接能够同时等待多个文件句柄的就绪状态。 5、异步IO由内核在数据拷贝完成时通知应用程序。而信号驱动是告诉应用程序什么时候可以开始拷贝数据。 前四种都属于同步IO第五种属于异步IO。同步IO和异步IO区别在于同步IO会参与IO结果的获取的过程。而异步IO则是不会参与IO结果获取的过程直接拿到最终的IO结果。 IO的本质就是等和拷贝数据。也就是说没有数据的时候就需要等待数据当有数据的时候再将数据拷贝走。而高效的IO要达到高效关键在于减少等的比重才能达到效果。在上述的五种IO模型中多路转接的方式一次等待多个文件描述符在某种意义上等的效率更高也就是说一次等通知多个就绪能够进行拷贝的文件描述符。 I/O多路转接之select select系统调用是用来让我们的程序监视多个文件描述符的状态变化的; 程序会停在select这里等待直到被监视的文件描述符有一个或多个发生了状态改变; 函数原型 参数解释 nfds表示最大文件描述符1。 readfds、writefds、exceptfds位图结构分别需要检测的可读文件描述符集合、可写文件描述符集合和异常文件描述符集合。 timeout表示设置select()的等待时间。timeout取值NULL、0、特定时间 NULL表示阻塞等待 0则表示仅检测描述符集合的状态然后立即返回 特定时间值表示select的等待时间。 操作fd_set位图结构的接口 函数返回值 执行成功----则返回文件描述词状态已改变的个数 如果返回0----代表在描述词状态改变前已超过timeout时间没有返回 当有错误发生时则----返回-1错误原因存于errno此时参数readfdswritefds, exceptfds和timeout的 值变成不可预测。 select特点 可监控的文件描述符个数取决与sizeof(fd_set)的值. 我这边服务器上sizeof(fd_set)512每bit表示一个文件描述符则我服务器上支持的最大文件描述符是512*84096. 将fd加入select监控集的同时还要再使用一个数据结构array保存放到select监控集中的fd         一是用于再select 返回后array作为源数据和fd_set进行FD_ISSET判断。         二是select返回后会把以前加入的但并无事件发生的fd清空则每次开始select前都要重新从array取得fd逐一加入(FD_ZERO最先)扫描array的同时取得fd最大值maxfd用于select的第一个参数。 select缺点 每次调用select, 都需要手动设置fd集合, 从接口使用角度来说也非常不便. 每次调用select都需要把fd集合从用户态拷贝到内核态这个开销在fd很多时会很大 每次调用select都需要在内核遍历传递进来的所有fd这个开销在fd很多时也很大 select支持的文件描述符数量太小 I/O多路转接之poll 函数原型 参数解释 fds是一个poll函数监听的结构列表. 每一个元素中, 包含了三部分内容: 文件描述符, 监听的事件集合, 返回的事件集合. 其中events和revents的取值可以为如下。比如POLLIN或者POLLOUT但是某一位为1的宏可以设置进events或者内核设置进revents中。 nfds表示fds数组的长度 timeout表示poll函数的超时时间, 单位是毫秒(ms). 返回值 返回值    0, 表示出错; 返回值    0, 表示poll函数等待超时; 返回值    0, 表示poll由于监听的文件描述符就绪而返回 poll的优点 不同与select使用三个位图来表示三个fdset的方式poll使用一个pollfd的指针实现         pollfd结构包含了要监视的event和发生的event不再使用select“参数-值”传递的方式. 接口使用比 select更方便         poll并没有最大数量限制 (但是数量过大后性能也是会下降因为需要轮询的检测就绪的事件). poll的缺点 在监听的文件句柄增多时 和select函数一样poll返回后需要轮询pollfd来获取就绪的描述符. 每次调用poll都需要把大量的pollfd结构从用户态拷贝到内核中. 同时连接的大量客户端在一时刻可能只有很少的处于就绪状态, 因此随着监视的描述符数量的增长, 其效率也会线性下降. I/O多路转接之epoll 函数原型 创建epoll句柄 epoll的函数与select和poll的函数不同epoll的函数有三个分别独立完成各自功能。 参数size表示所创建的epoll模型最大能监听文件句柄的数目。 返回值 success ----- return 正数。fail ----- return -1 将要监控的文件描述符进行注册 参数         epfd表示我们所创建的epoll模型的文件句柄。         op表示关心添加的文件句柄的什么行为。用三个宏来表示。                 EPOLL_CTL_ADD 注册新的fd到epfd中                 EPOLL_CTL_MOD 修改已经注册的fd的监听事件                 EPOLL_CTL_DEL 从epfd中删除一个fd         fd表示我们需要添加关心的文件句柄         event表示我们关心添加的文件句柄的什么事件。epoll_event结构体如下                                  其中events可以是一下宏的集合 返回值 success ----- return 0。fail ----- return -1 等待文件描述符就绪 参数         epfd表示我们所创建的epoll模型的文件句柄。         events表示系统监听到文件句柄的事件就绪并拷贝至用户的结构体数组         maxevents表示events数组的大小。         timeout表示超时时间毫秒0会立即返回-1是永久阻塞。 返回值 success ---- return 就绪的文件描述符的个数。 超时  -----  return 0 fail  ---- return -1 多路转接的工作原理 首先epoll的使用是一个单进程因此我们可以通过进程找到对应的epoll句柄。 select和poll的原理忽略其中的1、2和文件句柄就单单看3。当外设将数据通过驱动刷新到对应文件句柄中该文件句柄就就绪了。但是使用者需要轮询遍历3这个队列。 epoll的原理现在我们需要将上图看作一个整体epoll模型中存在一个红黑树存放关心的文件句柄并带有回调函数。当外设将数据通过驱动刷新到对应文件句柄中该文件句柄就就绪了。然后调用其回调函数将3中就绪的文件句柄添加到2中的就绪队列中。也就是说epoll不用再轮询遍历3这个队列了直接遍历2这个就绪队列就能拿到所有就绪的文件句柄了。         其次epoll中维护着红黑树、就绪队列等数据结构在Linux中都是交由文件管理的。着就是为什么要创建epoll模型也就是epoll文件句柄了。         epoll中的三个函数epoll_create、epoll_ctl、epoll_waitepoll_create函数负责创建句柄并初始化队列3的大小。epoll_ctl函数负责向红黑树中添加关心的文件句柄并注册回调函数。epoll_wait函数则是遍历就绪队列2拿到就绪的文件句柄。
http://www.dnsts.com.cn/news/141788.html

相关文章:

  • 怎么建设免费的网站非凡门户wordpress企业主题
  • 如何查询一个网站的空间服务商全包网站
  • 网站开发规模和工作量的计算网站建设的实习报告
  • 求有题目做的学习网站wordpress 常用的钩子
  • 展示网站建设的ppt软件开发培训学校收费标准公示
  • 企业建站费用情况怎么自己创建网页
  • 网络游戏网站制作网页设计公司有哪些在包头的
  • 做个自己的网站需要多少钱设计制作软件
  • 京东门户网站怎么做个人建站需要多少钱
  • 去哪个网站做兼职好看的网站都找谁做的
  • 东莞做公众号的网站网站运营知识
  • 网站后台登录代码网站建设制作设计开发
  • 阳西县建设局网站创建网站论坛
  • 网站建设论文摘要湖北正规网站建设质量保障
  • wordpress如何看访问烟台seo做的好的网站
  • 做外贸个人网站好吗wordpress编辑器选择
  • 江苏省建设厅官网网站永康网站建设的公司
  • 网站使用arial字体下载dedecms 网站访问量
  • 秦皇岛做网站wordpress顶部通知栏
  • 营销型网站与普通网站的区别关键词搜索引擎排名查询
  • 网站维护方式化妆品企业网站源码
  • 开发手机应用网站会展设计用什么软件
  • golang做网站银川网站制作报价
  • 定制小程序网站开发公司向国旗致敬做时代新人网站
  • 宁波网站推广优化公司电话网站与网页区别是什么意思
  • 建设绿色食品网站wordpress评论不要地址邮箱
  • wix如何做网站网站建设哪家g
  • 做淘宝客需要企业网站吗四川建设人才网证书查询
  • 校园二手网站开发的意义做生物学的网站
  • 网站建设竣工验收报告如何做学校网站