• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
HaibaraAi
博客园    首页    新随笔    联系   管理    订阅  订阅

完成端口

完成端口(队列,出口)
不是很多线程,线程数为cpu线程数,减少cpu线程上下文切换,不会全部等待,线程会挂起,能用于其它工作,没有64个事件限制,,并非发起io请求的才能处理数据
完成端口,数据是从内核对象接受好后,通知完成,交给我们处理,而不是通知数据来了,再去取
异步用到重叠io数据结构(执行io请求和处理其它事是同时的)
内核发现传来的是重叠io数据结构,就使用异步方式,里面有id,处理完数据通过id查找填充回去

I/O完成端口,是Windows环境下的异步IO处理模型。IOCP采用了线程池+队列+重叠结构的内核机制完成任务。需要说明的是IOCP其实不仅可以接受套接字对象句柄,还可以接受文件对象句柄等。
IOCP本质是一种线程池的模型,当然这个线程池的核心工作就是去调用IO操作完成时的回调函数。是WINDOWS系统的一个内核对象。通过此对象,应用程序可以获得异步IO的完成通知。

详见:https://blog.csdn.net/piggyxp/article/details/6922277
C# https://docs.microsoft.com/zh-cn/dotnet/api/system.net.sockets.socketasynceventargs?redirectedfrom=MSDN&view=netframework-4.7.2

posted @ 2018-09-28 17:48  HaibaraAi  阅读(167)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3