先看效果圖,示例發送數據“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 }
復雜的事情,我們要簡單做,滴滴滴