LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1335|回复: 2

c/c++中socket多线程接收问题

[复制链接]
发表于 2011-3-17 17:15:57 | 显示全部楼层 |阅读模式
想问大家一个问题,我现在程序是这样处理的,一个线程去接口客户端发过来的消息,并把消息放到任务队列,线程池再从任务队列里取任务,并将结果发给客户端,现在我想确认能不能多启几个线程去接收任务和处理的线程池类似,这种方式能实现吗?
发表于 2011-3-17 20:47:39 | 显示全部楼层
当有多个连接时,是可以用多线程接收请求。你可以用一个线程检查是否有socket可读,把可读的socket加入socket队列,一个线程池处理这个socket队列,这个线程池中的线程从队列中读取一个socket然后收取请求放入请求队列,另一个线程池中的线程处理这个请求队列并发送应答。可以改改 man epoll中的例子,把do_use_fd(events[n].data.fd)实现为“把socket放入队列”,然后再加两个线程池来实现。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-3-18 14:48:16 | 显示全部楼层
谢谢,我试试
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表