完成端口IOCP在收到客户数据后要怎么做才合适呢?

milanleon 2016-03-21 04:03:20
比如在收到客户端数据后要进行粘包处理,然后再解析这个包,然后再去数据库取数据,这些操作我看网上说的是不应放到工作线程里,那应该怎么处理呢?如果另开一线程处理的话岂不是又陷入了多线程切换的弊端?不懂。。。
...全文
188 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xian_wwq 2016-03-28
  • 打赏
  • 举报
回复
iocp只负责数据通讯,粘包处理可以放在里面。 数据接收完成后,后续的工作就和iocp没有关联了 lz说的数据库访问显然不能放到这一块,那是业务层需要做的处理 数据解析使用异步线程或者线程池
_船长_ 2016-03-22
  • 打赏
  • 举报
回复
工作线程:接收数据,处理数据包的解析, 业务线程:处理业务逻辑
milanleon 2016-03-21
  • 打赏
  • 举报
回复
一般都是这么做吗?
shenyi0106 2016-03-21
  • 打赏
  • 举报
回复
队列+线程池
shenyi0106 2016-03-21
  • 打赏
  • 举报
回复
牺牲一定的性能换吞吐量。 把它看成工厂的流水线就行了,工作者线程只负责收发数据,任务提交给队列,线程池负责业务处理

18,356

社区成员

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

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