在Qt里面是QThread吧,如果是多线程要在一个类里面也没啥问题,效率那主要就是考虑你线程干什么工作了,在Qt里面,你可以直接继承QThread类并实现它的run方法就可以了
class Worker_1 : public QThread
{
public:
Worker_1();
~Worker_1();
protected:
virtual void run() { // do somthing }
}
class Work_2 //你同样可以写出Work_2这个类
class WorkManager : QObject
{
Q_OBJECT
//......
public:
void start()
{
w1.start();
w2.start();
}
private:
Worker_1 w1;
Worker_2 w2;
}
// test main function
int main(void)
{
WorkManager wm;
wm.start();
while(1) QThread::sleep(300000);
}
在Qt里面QMutex、QSemphore只可以用来做线程间同步,如果你涉及到多线程共享资源的访问的话
两个线程间传递QByteArray,如果这个QbyteArray非常大的话,你建议你使用共享内存的方式,当然如果情况还好,可以使用Qt的信号与槽机制
温馨提示:答案为网友推荐,仅供参考