[問題] pthread在while迴圈 cpu loading飆高
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Linux
想請問一下 主程式建立一個thread因為要偵測某一個旗標的變化
所以用while迴圈一直偵測
但如果沒有nanosleep的話
cpu loading會飆很高 有時候會到100%
想請問一下 除了sleep之外還有其他辦法讓cpu loading不會這麼高嗎?
謝謝!!
int flag_detect_exit = 0;
void* detect_thread(void *p)
{
struct timespec ts;
ts.tv_sec=0;
ts.tv_nsec=10000000; // 10 milliseconds
while(!flag_detect_exit)
{
do_something();
//nanosleep(&ts, NULL);
}
}
int main(int argc, char* argv[])
{
pthread_attr_t detect_attr;
pthread_t detect_thread_t;
pthread_attr_init(&detect_attr);
pthread_attr_setdetachstate(&detect_attr,PTHREAD_CREATE_DETACHED);
pthread_create(&detect_thread_t , &detect_attr , &detect_thread , NULL);
pthread_attr_destroy(&detect_attr);
while(1)
{
sleep(1);
}
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.168.181.187
推
11/13 00:42, , 1F
11/13 00:42, 1F
→
11/13 00:43, , 2F
11/13 00:43, 2F
→
11/13 00:44, , 3F
11/13 00:44, 3F
→
11/13 00:51, , 4F
11/13 00:51, 4F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章