我希望我的线程永远运行。在代码的某处,如果收到'BYE',它将终止整个过程。当我使用while(TRUE)
或for(;;)
时,我看到CPU使用率增加了25%。睡眠功能也有限。有什么想法吗?
int _tmain(int argc, _TCHAR* argv[])
{
// Run the Standard Input/Output to reply to the super application
// (interface probably written in C#)
thread_standardIO_i = pthread_create(
&thread_standardIO_thrd,
NULL,
stdio_thread,
NULL);
while (1){
}
//sleep(9999999);
return 0;
}
答案 0 :(得分:2)
为什么不只是pthread_join
一些其他线程也将持续应用程序的生命周期,或pthread_cond_wait
一个永远不会发出信号的condvar?这些操作将“永远”阻止该线程,与sleep
不同,{{1}}只是要求它“在一段时间内”被唤醒。
答案 1 :(得分:1)
在无限循环内使用睡眠,睡眠值有助于设置无限循环消耗的CPU使用率。
while(1)
{
sleep(1); // set sleep value as u wish
}