QT多线程的简单使用,主线程发一份数据,子线程收两份数据

Posted kevinsh-lee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT多线程的简单使用,主线程发一份数据,子线程收两份数据相关的知识,希望对你有一定的参考价值。

先看效果图,示例发送数据“Hello World”

技术图片

主线程:0x16f54aeda20,另两个子线程分别是0x4f1baff690、0x4f1baff6a0

因为在子线程中加了200ms、400ms延迟,所以打印是有先后顺序的

核心代码也就一丢丢。代码逻辑就是使用信号与槽使用线程之间产生联系

 1 MfBusiness::MfBusiness(QObject *parent) : QObject(parent)
 2 {
 3 connect(&se,&MfSendData::Sgl_Send,&re1,&MfRecvData1::On_Recv);
 4 connect(&se,&MfSendData::Sgl_Send,&re2,&MfRecvData2::On_Recv);
 5 re1.moveToThread(&th1);
 6 re2.moveToThread(&th2);
 7 th1.start();
 8 th2.start();
 9 }
10 void MfBusiness::DecodeData(QString str)
11 {
12 QByteArray data=str.toUtf8();
13 se.HandleData(data);
14 qDebug()<<"main";
15 qDebug()<<str;
16 qDebug()<<QThread::currentThread();
17 }

 复杂的事情,我们要简单做,滴滴滴

以上是关于QT多线程的简单使用,主线程发一份数据,子线程收两份数据的主要内容,如果未能解决你的问题,请参考以下文章

qt子线程如何传输数据给主线程

业务需求:主线程重组数据后,一份转发至其他程序,一份存储本地记录

qt多线程的问题

QT中想在子线程中创建对话窗口怎么建

QT中UI主窗口如何与子线程相互传递参数

Qt例子,线程间通信,如何在线程外部对线程进行控制,问题请看问题补充,多谢了先