线程使用100%CPU

时间:2015-04-23 10:21:20

标签: multithreading timer cpu-usage

所以我的线程正在调用这个函数,我想由于无限循环,我获得了100%的CPU使用率。

我只想让线程检查timeInSeconds>停止(也许如果我可以检查每10秒而不是无限循环,那么CPU的问题将被消除)。

如果发生某些事件,

startTime会被主程序重置,所以如果事件没有发生一段时间,线程基本上会停止我的主程序。

void foo(){
    while(true){
    clock_t endTime = clock();
    clock_t clockTicksTaken = endTime - startTime;
    double timeInSeconds = clockTicksTaken / (double) CLOCKS_PER_SEC;

    if (timeInSeconds > stoptimer){
            cout << timeInSeconds << " seconds passed, closed due to timeout." << "\n";
            stop = 1;
            break;
    }
}

}

1 个答案:

答案 0 :(得分:0)

你是对的,你需要在循环中插入一个睡眠,500毫秒的睡眠就足够了。