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

云南网站建设锐网wordpress 纯代码

云南网站建设锐网,wordpress 纯代码,江宁区住房建设局网站,谷歌排名规则I/O模型名词介绍 说到I/O模型,都会牵扯到同步、异步、阻塞、非阻塞这几个词,以下讲解这几个词的概念。 阻塞和非阻塞 阻塞和非阻塞指的是一直等还是可以去做其他事。 阻塞(blocking):调用结果返回之前,…

I/O模型名词介绍

说到I/O模型,都会牵扯到同步、异步、阻塞、非阻塞这几个词,以下讲解这几个词的概念。

阻塞和非阻塞

阻塞和非阻塞指的是一直等还是可以去做其他事。

阻塞(blocking):调用结果返回之前,调用者被挂起(当前线程进入非可执行状态,在这个状态,CPU不会分配时间片,线程暂停运行);

非阻塞(nonblocking):调用结果返回之前,调用者不会被挂起(当前线程还是可执行状态,CPU会分配时间片,线程还可以运行)

同步和异步

同步/异步关注的是消息通信机制

同步(synchronous):被调用者完成任务后,不会主动给调用者返回调用结果。

异步(asynchronous):被调用者完成任务后,会主动给调用者返回调用结果。

                  

       阻塞、非阻塞、多路IO复用,都是同步IO,异步必定是非阻塞的,所以不存在异步阻塞和异步非阻塞的说法。真正的异步IO需要CPU的深度参与。换句话说,只有用户线程在操作IO的时候根本不去考虑IO的执行全部都交给CPU去完成,而自己只等待一个完成信号的时候,才是真正的异步IO。所以,拉一个子线程去轮询、去死循环,或者使用select、poll、epool,都不是异步。

I/O模型类型

IO模型分为以下五类

  1. 阻塞I/O:所有过程全阻塞
  2. 非阻塞I/O:如果没有数据buffer,则立即返回EWOULDBLOCK
  3. I/O复用型(select和poll):在wait和copy阶段分别阻塞
  4. 信号驱动型I/O(SIGIO):在wait阶段不阻塞,但copy阶段阻塞(信号驱动I/O),即通知
  5. 异步I/O(AIO):完全无阻塞方式,当I/O完成时提供信号

阻塞I/O

说明:应用程序调用一个IO的recvfrom函数,会导致应用程序阻塞,进入阻塞状态后直到I/O操作结束才会返回;如果系统内核数据没有准备好,那就一直等待数据准备,因为是调用了recvfrom函数导致了应用程序阻塞,所以一直在等,做不了任何事情,内核数据准备好之后把数据从内核拷贝到用户空间,拷贝结束后,I/O函数返回成功指示。 注:其阻塞时在I/O操作阶段

非阻塞I/O

说明:用户线程发起IO请求时立即返回。但并未读取到任何数据,则返回字段为“EWOULDBLOCK”,用户线程需要不断地发起IO请求,直到数据到达后,才真正读取到数据,继续执行。即“轮询”机制。 整个IO请求过程中,虽然用户线程每次发起IO请求后可以立即返回,但是为了等到数据。仍需要不断地轮询、重复请求、消耗了大量的CPU资源;是比较浪费CPU的方式,一般很少用这种模型,而是在其他模型中使用非阻塞IO这一特性。

I/O复用(select和poll)

说明:I/O复用模型会用到select或poll函数,在I/O复用模型中,并不是阻塞到I/O操作过程中,而是阻塞到select或者poll函数中; 以select为例:进程在select处阻塞,等待几个描述符中的一个变为可操作,如果没等待到就继续阻塞在第一阶段,如果等到了一个描述符变为了可操作,则调用recvfrom函数将数据拷贝到应用缓冲区。

信号驱动I/O(SIGIO)

说明:首先,我们允许套接口进行信号驱动I/O,并安装一个信号处理函数SIGIO,如果数据没有准备好,则立即返回结果,进程继续工作并不阻塞。当数据准备好时,系统内核会主动发送一个SIGIO信号给应用程序,应用程序收到信号后,可以在信号处理函数中调用I/O操作函数recvfrom进行数据处理。 信号驱动I/O模型的优点是当数据报到达时,可以不阻塞,主循环可以继续执行,只是等待处理程序的通知,或者数据已经准备好被处理,或者数据报已经准备好被读了。

异步I/O(AIO)

说明:当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态通知和回调通知来告诉调用者的输入输出操作。 用户可以直接对I/O执行读写操作,这些操作告诉内核用户读写缓冲区的位置,以及I/O操作完成之后内核通知应用程序的方式,就是上面讲的通过状态通知或者回调通知来告诉调用者。异步I/O的读写操作总是立即返回,但没有返回结果说是否阻塞,因为异步I/O操作真正的读写操作已由内核接管,内核自己对数据处理完成后生成一个信号,然后通知用户刚才交给自己的事件已经处理完成。

五种I/O模型的总结及比较

中文图示如下:

英文图示如下:

从两张图中我们可以看到,越往后,阻塞越少,理论上效率也是最优。 其中五种I/O模型中,前三种属于同步I/O,后两者属于异步I/O。

http://www.yayakq.cn/news/309152/

相关文章:

  • 2017两学一做竞赛网站艾迪网络专业的网站建设公司
  • 网站建设网站软件查询网站空间商
  • 卖信息的网站怎么自己做刷东西的网站
  • 深圳企业网站建设哪家好成都青羊网站建设
  • 哈尔滨模板网站建站wordpress文章商品模板下载
  • 口碑好的网站开发公司哪家最专业为网站网站做代理被判缓刑
  • 做自动发卡密网站的教程wordpress快速下载地址
  • 深圳市响应式网站建设网页设计什么软件好
  • 网站模板包含哪些内容苏州电子商务网站设计
  • 网站查询域名ip入口外贸营销运营
  • 企业专业网站建设哪家好国际学校网站建设
  • 网站备案多久通过无锡设计网站公司
  • 最新远程网站建设服务php网站的开发背景
  • 汕头网站建设sthke民宿网站建设方案
  • 请人做个网页大概需要多少钱网站seo平台
  • php做网站导购宝塔window怎么做网站
  • html5网站开发的源码网站内搜索功能怎么做
  • 特殊信息收费的网站有哪些外贸营销网站怎么建站
  • 网站建设所面临的问题兰州旅游攻略
  • 免费承接网站建设开发平台网站多少钱
  • 南宁网站建设服务商免费企业网站开发
  • 周口集团网站建设wordpress文章所属栏目
  • 深圳网站设计 建设元住房和城乡建设部主网站
  • 网站翻页模板百度网盘搜索引擎入口哪里
  • 宁波建网站方式无经验学电商要多久
  • app 网站可以做的免费推广织梦cms手机网站源码
  • 网站建设技术发展现状系统开发的主要方法有生命周期法
  • 建设个人网站的参考网站及文献ui界面设计总结心得
  • 西南城乡建设部网站首页高州新闻 头条 今天
  • 招投标 网站建设 山西哪些网站建设公司好