作家
登录

高性能IO模型浅析

作者: 来源: 2017-07-10 11:53:27 阅读 我要评论

图7 异步IO

如图7所示,异步IO模型中,用户线程直接应用内核供给的异步IO API提议read请求,且提议后急速返回,持续履行用户线程代码。不过此时用户线程已经将调用的AsynchronousOperation和CompletionHandler注册到内核,然后操作体系开启自力的内核线程去处理IO操作。当read请求的数据达到时,由内核负责攫取socket中的数据,并写入用户指定的缓冲区中。最后内核将read的数据和用户线程注册的CompletionHandler分发给内部Proactor,Proactor将IO完成的信息通知给用户线程(一般经由过程调用用户线程注册的完成事宜处理函数),完成异步IO。

用户线程应用异步IO模型的伪代码描述为:

void UserCompletionHandler::handle_event(buffer) {

process(buffer);


}

{

aio_read(socket, new UserCompletionHandler);

}

用户须要重写CompletionHandler的handle_event函数进行处理数据的工作,参数buffer表示Proactor已经预备好的数据,用户线程直接调用内核供给的异步IO API,并将重写的CompletionHandler注册即可。

本文大年夜根本概念、工作流程和代码示例三个层次扼要描述了常见的四种高机能IO模型的构造和道理,理清了同步、异步、壅塞、非浊宣这些轻易混淆的概念。经由过程对高机能IO模型的懂得,可以在办事端法度榜样的开辟中选择更相符实际营业特点的IO模型,进步办事质量。欲望本文对你有所赞助。

本文版权归作者和博客园共有,作者:Florian。

【编辑推荐】

  1. 递归神经收集之父:将来机械人对待仁攀类就像我们存眷蚂蚁一般
  2. 若何把握编程世界的那把锁
  3. 深刻研究Openstack Nova组件对象模型以及数据库拜访机制
  4. 【618】为选择显示器而烦忧吗?别急!先看看这些【文底有特惠彩蛋】
  5. 3.2.2 Android 编译体系抽象模型
【义务编辑:张子龙 TEL:(010)68476606】

  推荐阅读

  长文解密卷积神经网络体系结构

引言先坦白地说,有一段时光我无法真正懂得深度进修。我查看相干研究论文和文┞仿,感到深度进修异常复杂。我测验测验去懂得神经收集及其变体,但依然认为艰苦。接着有一天,我决定一步一>>>详细阅读


本文标题:高性能IO模型浅析

地址:http://www.17bianji.com/lsqh/36095.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)