这篇文章主要讲解了“QT多线程类数组同时开启几十个线程怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“QT多线程类数组同时开启几十个线程怎么实现”吧!

我们先定义一个线程类类:textTread
texttread.h
view source#define TEXTTREAD_H
04.#include <QThread>
05.
06.class textTread : public "https://blog.51cto.com/user_index.php?action=addblog_new" target="_blank" class="keylink">QThread
07.{
08.Q_OBJECT
09.public:
10.textTread();
11.void run();
12.signals:
13.void sendGUIThreadData(QString str); //向主线程通信的信号
14.public slots:
15.void GetGUIThreadID(int mThreadID); //接受主线程通讯过来数据的槽
16.private:
17.int ThreadID;
18.};
19.
20.#endif // TEXTTREAD_H
再来看 texttread.cpp
view sourceprint?
01.#include "texttread.h"
02.#include
03.textTread::textTread()
04.{
05.}
06.void textTread::run()
07.{
08.qDebug() << tr("Thread is Open,ThreadID : %1").arg(ThreadID);
09.//You can do anything in here 嗨嗨拽两句鸟文
10.}
11.void textTread::GetGUIThreadID(int mThreadID) //接受主线程通讯过来的数据
12.{
13.ThreadID = mThreadID;
14.}
再看在GUI主线程实现50个线程的代码:
view sourceprint?
01.const int LENGTH = 50;
02.
03.textTread *tread;
04.tread = new textTread[LENGTH];
05.for(int i=0;i<=LENGTH-1;i++){
06.connect(this,SIGNAL(SendGUIThreadID(int)),&tread[i],SLOT(GetGUIThreadID(int)));
07.connect(&tread[i],SIGNAL(sendGUIThreadData(QString)),this,SLOT(GetGUIThreadData(QString)));
08.emit SendGUIThreadID(i);
09.tread[i].start();
10.}
声明类的指针数组。
然后循环绑定信号与槽,最后循环用Start()运行线程,注意此处new 出的类数组,后面用的是.而不是-> 。
感谢各位的阅读,以上就是“QT多线程类数组同时开启几十个线程怎么实现”的内容了,经过本文的学习后,相信大家对QT多线程类数组同时开启几十个线程怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。