class Mythread : public QThread
{
protected:
void run() //线程入口函数
{
for(int i=0; i<5; i++)
{
qDebug() << objectname{} <<" : " << i;
sleep(1); // Qthread 的静态成员函数
}
}
};
int main(int argc, char* argv[])
{
qDebug() << "Main begin";
Mythread d;
d.setObjectname("t");
d.start();
qDebug() << "Main end";
}
//输出
main begin
Main end
"t": 0;
"t": 1;
"t": 2;
"t": 3;
"t": 4;
线程是并行运行的(上面主线程优于子线程结束)
一个进程等到所有线程结束之后在结束
自然死亡;非自然死亡(调用函数terminate())
如何在代码中如何优雅的终止线程??
// 优雅安全退出进程,模型,适用于任何多线程编程
class Solution : public QThread
{
protected:
volatile bool m_toStop;
public:
Solution()
{
m_toStop = false;
}
void stop()
{
m_toStop = true;
}
};
void Solution::run()
{
while(!m_tostop)
{
// do task
}
}
注:本笔记根据狄泰软件学院课程做的