首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

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

2013-01-07 
Qt自编两个线程很耗CPUvoid mythread1::run()//开辟一个线程{while(1){tm-setLCDNum1()if(tm-getstate(

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高了,建议用定时器

热点排行