• 6017阅读
  • 3回复

关于QT多线程CPU利用率的问题 [复制链接]

上一主题 下一主题
离线sunny_helo
 
只看楼主 正序阅读 楼主  发表于: 2008-10-17
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
本人是初学者,我想请问一下在QT中怎么处理多线程编程中CPU利用率过高的问题,例如:
void Thread :: run()
{    while(1)
    {
        printf("test\n");
        sleep(0);
    }
}
CPU利用率很高,在windows中一般使用sleep(0)就可以了,在QT中如何进行解决这样的问题?
离线water_wf

只看该作者 3楼 发表于: 2008-10-17
降低优先级或者用waitconditions
离线wvins
只看该作者 2楼 发表于: 2008-10-17
不要使用Sleep,
Sleep(0)只是调用一下进程切换,很快会切回来。

最好的办法是挂起线程。
线程应该 死循环执行任务,挂起等待唤醒
离线sunny_helo
只看该作者 1楼 发表于: 2008-10-17
补充问一下:现在使用usleep函数,线程内主要完成数据的接收,发现只要启动线程,无论有没有接收到数据,CPU利用率都很高,真的有点想不明白了。
快速回复
限100 字节
 
上一个 下一个