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多线程的简单使用,主线程发一份数据,子线程收两份数据的主要内容,如果未能解决你的问题,请参考以下文章