Overlapped I/O 與 I/O Completion Port Model

Overlapped I/O是Windows對I/O操作的一個封裝
他可以用在文件,socket等很多地方
用來從I/O設備讀寫數據
一般來說 用BSD socket的話 就需要為讀寫專門起一個線程 由自己處理讀寫的操作。這樣不能說不好,但是如果有人幫處理過了可以減輕負擔,那就太好不過了
于是MS就推出了Overlapped I/O這個操作模式
它的本質也是操作系統起一個線程來處理讀寫。但是省去了自己對線程的控制。
其主要思想就是把讀寫操作設置為overlapped模式 然后等待操作完成的event。 如果event被觸發則進入下一步的操作。

嗯 好像說的有點混亂........

簡而言之 言而簡之 Overlapped I/O模式就是一種異步通訊的模式

異步通訊和同步通訊不同,同步通訊時當執行完一個操作後進行下一個操作 而異步通訊則執行一個的同時執行下一個。

 這個也是一種I/O操作的模式
具體很像 Overlapped I/O的 只是更復雜一些
有說法說 IO Complection Port是windows提供的最復雜的內核對象了

这个模式用来编写服务器端的程序很合适,因为内核中会处理一些动作所以效率会高一点点
它也是异步处理的模式。 与标准的 Overlapped I/O不 同的是:他把一个socket与一个Completion Port关联起来後可以继续进行正常的IO操作。然后,当一个事件发生的时候,这个Completion Port就被加入一个消息队列,由应用程序使用GetQueuedCompletionStatus查询内核得到这个Completion Port进行操作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值