Qt自编两个线程很耗CPU
void mythread1::run()//开辟一个线程
{
while(1)
{
tm->setLCDNum1();
if(tm->getstate() == 1) break;
}
}
void mythread2::run()//第二个线程
{
while(1)
{
tm->setLCDNum2();
if(tm->getstate() == 1) break;
}
}
//主窗口类设置停止线程
void mainwin::closeEvent(QCloseEvent *event)
{
setstate(1);
}
//主函数部分:
mythread1 mt1(m);
mythread2 mt2(m);
mt1.start();//启动线程
mt2.start();
return app.exec();
//结果是让下面两个时钟一直走....
//测试结果很耗CPU啊%50以上,原因是啥呢?我不怎么不懂线程编程,以前没做过!
[解决办法]
因为你是直接放在while里面 一直死循环,cpu使用率高这是正常的。
你后面在while里面加了sleep,所以cpu使用率就低了
这不是线程的关系,就算只有一个线程也会是这样的。
[解决办法]
死循环当然cpu高了,建议用定时器