读书人

Qt自编两个线程很耗CPU,该如何处理

发布时间: 2013-01-07 10:02:24 作者: rapoo

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以上,原因是啥呢?我不怎么不懂线程编程,以前没做过!
Qt自编两个线程很耗CPU,该如何处理Qt自编两个线程很耗CPU,该如何处理

[解决办法]
因为你是直接放在while里面 一直死循环,cpu使用率高这是正常的。

你后面在while里面加了sleep,所以cpu使用率就低了

这不是线程的关系,就算只有一个线程也会是这样的。

[解决办法]
死循环当然cpu高了,建议用定时器

读书人网 >QT开发

热点推荐