我所理解的IOCP

我所理解的IOCP IOCP---完成端口模型,是windows服务器上处理大量连接的模型。采用这种模型,往往可以达到最佳的系统性能。 从本质上讲,完成端口模型要求创建一个windows完成端口对象(唯一一个没有安全描述符的内核对象),该对象通过指定数量的线程对重叠IO进行管理,以便为已经完成的重叠IO请求服务,要注意的是,所谓完成端口,实际是windows采用的一种IO机制,除套接字之外,还可以接受其他东西。在使用这种模型之前,首先要创建一个IO完成端口对象。 这个函数有两个目的,第一次调用是创建一个完成端口对象,第二次调用是将一个句柄同完成端口关联到一起。 那么,创建多少线程是较为合适的呢?一般是:线程数=CPU数*2+2。线程创建完了之后,就让主线程进入一个循环,用来接受客户端的连接,当连接成功后,便将用于连接的套接字和完成端口关联起来(也是调用CreateIoCompletionPort ,这时他的第二个功能)。然后,便可在已建立连接的套接字上处理IO。之前创建的线程一直处在挂起状态,是在线程中调用GetQueuedCompletionStatus函数实现的,这个函数是让一个或多个线程在完成端口上等待。如果某个套接字上有IO活动,那么就会激活某个等待的线程。让它处理数据。 这就是我理解的IOCP,可能还待完善。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值