- 1、本文档共2页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IOCP浅析1
什么是IOCP
众所周知,为了绝对同步,所以很多模式都采用的是同步模式,而不是异步,这样就会产生很大情况下在等待,CPU。自从MSwinsocket2中引入了IOCP这个模型之后,他才开始被大家所认知。
IOCP?(I/O?Completion?Port),中文译作IOI/O操作的APII/O事件通知给我们的应用程序,那游戏项目来说,就是客户端或者服务器。
他与SocketAPI??select 或其他异步方法不同的是,他需要讲一个Socket和一个完成端口绑定在一起,然后就可以进行网路通信了。
什么是同步/
所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回。按照这个定义,其实绝大多数函数都是同步调用(例如sin,?isdigit
异步的概念和同步相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。
逻辑上通俗来讲是完成一件事再去做另外一件事情就是同步,而一起做两件或者两件以上的事情就是异步了。类似于Win32APISendMessage 和PostMessage ,你可以将他理解成单线程和多线程的区别。
拿游戏服务器与客户端通信来说:
如果是同步:
ClientAMsg1Req消息给Server,这个时候ClientA就会等待Server处理Msg1Req。这段时间内ClientA只有等待,因为Server还没有给ClientA回复Msg1Ack消息,所以ClientA只能痴痴的等,等到回复之后,才能处理第二条Msg2Req消息,这样无疑就会大大的降低性能,产生非常差的用户体验。
如果是异步:
ClientAMsg1Req消息给Server,ClientA有发送第二条Msg2Req消息给Server,Server会将他们都存入队列,一条一条处理,处理完之后回复给ClientA,这样用户就可以不必等待,效率就会非常高。
什么是阻塞/
阻塞调用是指调用结果返回之前,当前线程会被挂起。函数只有在得到结果之后才会返回。可能阻塞和同步有点类似,但是同步调用的时候线程还是激活的,而阻塞时线程会被挂起。
非阻塞调用和阻塞的概念相对应,指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。
对象的阻塞模式和阻塞函数调用
对象是否处于阻塞模式和函数是不是阻塞调用有很强的相关性,但是并不是一一对应的。阻塞对象上可以有非阻塞的调用方?式,我们可以通过一定的APIselect就是这样的一个例子。
对IOCP
I/O完成端口可能是Win32提供的最复杂的内核对象。?Jeffrey?Richter
这是实现高容量网络服务器的最佳方法。Microsoft?Corporation
完成端口模型提供了最好的伸缩性。这个模型非常适用来处理数百乃至上千个套接字。Anthony?Jones??Jim?Ohlund
I/O?completion?ports[必须同时维护许多连接线路]的一个技术。Completion?ports利用一些线程,帮助平衡由I/O请求所引起的负载。这样的架构特别适合用在SMP系统中产生的”scalable”服务器。?Jim?Beveridge??Robert?Wiener
IOCP中的完成是指什么意思?
网络通信说白了就是将一堆数据发过来发过去,到底还是数据的操作。不过大家都知道I/OCPU来说是非常慢的。坐等I/O是很浪费时间的事情,可能你只需要读取100KB的数据,假设读了0.1秒,假设CPU是3.0G?Hz,那么CPU已经运行了0.3G次了,所以CPU这个时候就不满意了,哥这么NB,为什么要等你?
所以我们用另外一个线程来处理I/OIO(Overlapped?I/O)技术,应用程序可以要求OS为其传输数据,在完成的时候通知应用程序,然后在进行相应操作,这也就是为什么叫完成的原因。这可以使得应用程序在I/ONB的CPU不至于痴痴等待。
您可能关注的文档
- 南海局势与我国国防发展.doc
- 南美白对虾生态养殖项目.doc
- 南航高等工程数学作业.doc
- Groupa分享一块创意装修设计(上).docx
- Groupa分享一块创意装修设计(下).docx
- 南通中学初中质量密度.doc
- 南通国际学校一期工程4楼游泳池.doc
- 南通市省以上投资土地开发整理督查项目表.doc
- 南通港闸区龙潭生态园现实版开心农场.doc
- gz学生版《直流电路电学实验》【高中物理导学】.doc
- 2024高考物理一轮复习规范演练7共点力的平衡含解析新人教版.doc
- 高中语文第5课苏轼词两首学案3新人教版必修4.doc
- 2024_2025学年高中英语课时分层作业9Unit3LifeinthefutureSectionⅢⅣ含解析新人教版必修5.doc
- 2024_2025学年新教材高中英语模块素养检测含解析译林版必修第一册.doc
- 2024_2025学年新教材高中英语单元综合检测5含解析外研版选择性必修第一册.doc
- 2024高考政治一轮复习第1单元生活与消费第三课多彩的消费练习含解析新人教版必修1.doc
- 2024_2025学年新教材高中英语WELCOMEUNITSectionⅡReadingandThi.doc
- 2024_2025学年高中历史专题九当今世界政治格局的多极化趋势测评含解析人民版必修1.docx
- 2024高考生物一轮复习第9单元生物与环境第29讲生态系统的结构和功能教案.docx
- 2024_2025学年新教材高中英语UNIT5LANGUAGESAROUNDTHEWORLDSect.doc
最近下载
- 基于UML的大学图书馆图书信息管理系统设计实验.docx VIP
- 推土机安全作业操作规程技术交底培训.pptx VIP
- BYK技术手册_润湿分散剂.pdf
- 必威体育精装版GBT20647.9物业服务管理体系一整套文件(手册+程序文件+管理制度+表单).pdf
- 关于续签2017年度物业管理服务项目合同的请示1-12月-.doc VIP
- 一例二型糖尿病患者个案护理.pptx
- 幼儿教育课题申报书:《幼儿劳动养成教育的培养研究》.docx
- 2022年道德与法治新课标《义务教育道德与法治课程标准(2022年版)》解读PPT课件.pptx VIP
- 五年级上册平行四边形的面积说课之课件.ppt
- 房屋装修监管难痛点与策略.doc
文档评论(0)