我发现了这段代码并对其进行了测试。
#include <time.h>
int main ()
{
time_t start_time;
time_t current_time;
int TIMEOUT=5;
start_time = time(NULL);
current_time = time(NULL);
while (current_time < start_time + TIMEOUT)
{
//do everything here
current_time = time(NULL);
}
}
它就像一个魅力,但它完全需要一个cpu。 有没有办法不浪费这么多cpu? 感谢
编辑,我无法使用睡眠,我必须在等待期间做其他事情
答案 0 :(得分:2)
您需要使用计时器。有几个API可以做到这一点。
只使用alarm
是最简单的。
有setitimer/getitimer
。
有timer_create/timer_destroy/timer_settime
个家庭。
每个人都有自己的优势抵消了自己的复杂性。