当前位置: 代码迷 >> QT开发 >> qt多线程的设计思路解决思路
  详细解决方案

qt多线程的设计思路解决思路

热度:59   发布时间:2016-04-25 04:04:36.0
qt多线程的设计思路
我要写一个tcp服务器的程序.
在多线程设计的时候遇到了点想不明白的地方
我的程序特点是每个连接时间都不长程序量也不大
我的想法:
1 一个客户端连接开启一个线程,结束后删除
2 定义固定数量的线程去响应客户端请求

如果是方案一
会频繁的new和delete QThread 这样的话会不会给操作系统带来很大的负担?
如果是方案二
固定数量应该怎么定义?多大才合适?因为每个线程任务都不多,太小了不能及时响应客户端的连接,太大了会浪费很多内存

还有另外一个问题.
我new QThread了一个新的线程后 不想由其他线程来管理了
那么 我怎么让这个线程结束并删除自己呢? 
在程序中 Delete this? 
还是在程序中 调用析构函数? 我没有自己定义析构函数  这样做有用么?
我要不要在析构函数中 使用 Delete this?

------解决方案--------------------
引用:
引用:
引用:1) 连接数不大,数据流不多的情况下直接上select,不用多线程
2) 你是对的,线程的创建和销毁对CPU来说的确是很大开销,特别是多线程时,会有线程切换,开销更大。
3) 标准的进程内线程最大使用数定义为CPU数目*2
 根据你的描述,没必要每次都创建或销毁线程,可以让线程一直在那里呆着,等到有新……


多看看网络编程吧
如果select也没听说过 上来做高并发的server还是很有难度的
  相关解决方案