qt线程,线程池用到的一点问题

本文总结了使用QT库进行多线程和线程池编程时遇到的问题。QThreadPool主要负责线程管理,适用于数据处理,但不适宜界面交互。QThread有两种使用方式,包括通过代理类和直接继承,对于如何控制多线程处理任务,例如限制5个线程处理20组数据,文中提出疑问待解答。
摘要由CSDN通过智能技术生成

总结一下最近使用qt多线程和线程池遇到的一些问题。

1.QThreadPool
线程池的作用是什么呢?把多个线程丢个一个线程池中,让他对目前的线程进行管理。比如最大运行的线程数,以及最大线程数外的线程就处于等待状态等。

要放到线程池中的线程必须继承自QRunable类,这个类有个缺点,就是无法向外面发送信号。所以这个类不适合用来做界面的交互,而只是适合用来做数据的处理等。

2.QThread

使用QThread ,看了官方的文档,有两种方法,采用一个代理类来对线程进行管理。

 class Worker : public QObject
 {
     Q_OBJECT
     QThread workerThread;

 public slots:
     void doWork(const QString &parameter) {
         // ...
         emit resultReady(result);
     }

 signals:
     v
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值