读书人

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

发布时间: 2013-03-06 16:20:31 作者: rapoo

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

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

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

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


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

读书人网 >QT开发

热点推荐