找回密码
 立即注册
收起左侧

关于用QTcpServer创建多线程的问题

5
回复
6875
查看
[复制链接]
累计签到:8 天
连续签到:1 天
来源: 2016-12-16 16:53:55 显示全部楼层 |阅读模式
5Qter豆
最近在做服务器与客户端的程序,听说服务器端QTcpServer要用到多线程,网上的教程是为每一个连接的客户端分别创建一个线程。可有一个问题,假如有10000个客户端连接了这个服务器,按照网上的教程,那岂不是要新建10000个线程?这样做估计电脑都快死机了吧!
有没有谁做过这方面的程序,求助啊

回复

使用道具 举报

尚未签到

2016-12-20 00:30:19 显示全部楼层
不建议多线程,不然CPU会忙死,单线程搞好就行

点评

我有一个想法,就是把10000个连接来的客户端放进一个线程里执行,只是这种方法我用代码写不出来  详情 回复 发表于 2016-12-20 16:50
回复

使用道具 举报

累计签到:8 天
连续签到:1 天
2016-12-20 16:50:09 显示全部楼层
Joey_Chan 发表于 2016-12-20 00:30
不建议多线程,不然CPU会忙死,单线程搞好就行

我有一个想法,就是把10000个连接来的客户端放进一个线程里执行,只是这种方法我用代码写不出来
回复

使用道具 举报

尚未签到

2016-12-20 23:10:23 显示全部楼层
1363386323 发表于 2016-12-20 16:50
我有一个想法,就是把10000个连接来的客户端放进一个线程里执行,只是这种方法我用代码写不出来 ...

可以的,多找找别人的代码是怎么写的
回复

使用道具 举报

累计签到:104 天
连续签到:1 天
2016-12-21 10:02:02 显示全部楼层
高并发网络编程不要用QTcpServer,你的思想还停留在同步的思维上,稍微复杂点的网络模型都是用异步。
异步就不用考虑这么多线程了,一般都是做成一个线程池,供需求调用。
可以关注一下boost::asio,一个开源跨平台网络库,win端使用iocp,linux使用epoll。

点评

好的,我会看看,谢谢!  详情 回复 发表于 2016-12-21 11:27
回复

使用道具 举报

累计签到:8 天
连续签到:1 天
2016-12-21 11:27:56 显示全部楼层
godmaycry 发表于 2016-12-21 10:02
高并发网络编程不要用QTcpServer,你的思想还停留在同步的思维上,稍微复杂点的网络模型都是用异步。
异步 ...

好的,我会看看,谢谢!
回复

使用道具 举报

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

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了