所以我的线程正在调用这个函数,我想由于无限循环,我获得了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;
}
}
}
答案 0 :(得分:0)
你是对的,你需要在循环中插入一个睡眠,500毫秒的睡眠就足够了。