完成端口

完成端口(队列,出口)
不是很多线程,线程数为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

转载于:https://www.cnblogs.com/HaibaraAi/p/9720001.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值