完成端口和线程池是什么关系?

milanleon 2014-09-16 09:50:34
我看有的人说二者要配合使用,有的人说完成端口内部就使用了线程池,那如果要设计一款能够处理大并发的服务器端,到底是二者一块使用还是只用完成端口就行呢?有啥关于这方面的详细资料吗?
...全文
196 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
silencenet 2014-09-17
  • 打赏
  • 举报
回复
既然还没有理解,可以使用IOCP,可以不使用线程池 待需要时,自然就理解了,没有必需的吧 没有实践,书看的再多,听人说的再详细,或许都无法理解到 真正需要之时,自然而然就明白了
阿呆_ 2014-09-16
  • 打赏
  • 举报
回复
两者是共生关系。 用IOCP必用线程。 IOCP不过是内部优化了激活哪个线程来处理完成事件的步骤, 另外不像WSAEventSelect之类的异步操作, IOCP是在发送/接收完成后才激活线程进行后续操作,而WSAEventSelect只是在可以发送/接收时激活相应等待的线程,具体发生/接收并未发生还需要线程自己进行。 其它异步的一个缺点是线程等待的是特别指定的socket或overlappedIO的状态,如果这些状态没有激活,那么相应线程就闲置了。IOCP则是多个线程等待所以overlapped IO的结果,只要有完成事件,线程就会被调度,最大可能地防止了线程闲置以及必须切换到特定线程时的系统开销。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧