Qt中通过QThread直接支持多线程
-QThread是一个跨平台的多线程解决方案
-QThread以简洁易用的方式实现多线程编程
ps:Qt中的线程以对象的形式被创建和使用,每一个线程对应着一个QThread对象.
QThread中的关键成员函数
-void run()
·线程体函数,用于定义线程功能(执行流)
-void start()
·启动函数,将线程入口地址设置为run函数
-void terminate()
·强制结束线程(不推荐)
QThread编程实例
class MyThread : public QThread
{
protected:
void run()
{
for(int i = 0 ; i< 5; i++)
{
qDebug() << objectName() << " : " << i;
sleep(1);
}
}
};
int main(int argc, char *argv[])
{
qDebug() << "main begin";
MyThread t;
t.setObjectName("t");
t.start();
qDebug() << "main end";
}
解决方案思路
-run()函数执行结束时优雅终止线程的唯一方式