回复: 线程不能销毁,求助
#6 回 九重水 的帖子 [mugua001 09-03 10:52]
九重水:关心销毁线程之前,先关心一下:
1,为什么你要临时创建线程;
2,为什么创建线程之后你又迫不及待地销毁它?
在一个程序中,线程不是越多越好,也不是随时创建和销毁就是好的。
....... (2021-09-03 10:10)
谢谢!
你这倒是个不错的主意。
开始就创建一定数量的线程,排队扫描空闲的使用……
——————————————————————————————
其实我的想法很单纯:
接收到客户端请求一次,创建个线程处理,处理完之后线程就不用了(销毁);
周而复始……
#7 [tanyue.esec 09-04 10:25]
每个线程处理一个连接,连接并发数上来了就不行了,线程池会好一些,找找有没有合适的第三方中间件、组件库吧。
我自己用的是随主程序创建子线程,子线程一直在while循环,主界面类的析构函数中执行子线程的wait函数。
#8 回 tanyue.esec 的帖子 [mugua001 09-04 11:29]
tanyue.esec:每个线程处理一个连接,连接并发数上来了就不行了,线程池会好一些,找找有没有合适的第三方中间件、组件库吧。
我自己用的是随主程序创建子线程,子线程一直在while循环,主界面类的析构函数中执行子线程的wait函数。 (2021-09-04 10:25)
“……主界面类的析构函数中执行子线程的wait函数……”也就是只有 主界面 退出时,才能释放线程资源……
其实我的想法(可能不正确),是不停地临时 new出新线程,每次有客户端请求时就 new出的新线程处理完某个具体事务后,自己销毁(释放);等待下一次 客户端请求再 new 新线程……
#9 回 tanyue.esec 的帖子 [fsu0413 09-04 13:02]
tanyue.esec:每个线程处理一个连接,连接并发数上来了就不行了,线程池会好一些,找找有没有合适的第三方中间件、组件库吧。
我自己用的是随主程序创建子线程,子线程一直在while循环,主界面类的析构函数中执行子线程的wait函数。 (2021-09-04 10:25)
Qt自己就有线程池。。。。
#10 [mugua001 09-04 23:03]
感谢各位大虾的热情帮助!
我用 线程池,终于达到我想要的效果了!再次感谢大家。
路线:主线程接收来自客户端的请求,创建新线程(从池中)处置,发到主线程中进行回复。
但是我感觉还有一个问题:主线程到子线程,通过构造函数传参到子线程,若是大并发时,这个参数是不是就应该加锁呢??子线程1构造传参进到成员A,B,结果还没等线程1结束,新的子线程构造又传参来了,A,B的值被修改了……