一段时间后杀死一个进程

时间:2014-05-01 17:31:15

标签: c time posix cpu

我发现了这段代码并对其进行了测试。

#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? 感谢

编辑,我无法使用睡眠,我必须在等待期间做其他事情

1 个答案:

答案 0 :(得分:2)

您需要使用计时器。有几个API可以做到这一点。

只使用alarm是最简单的。

setitimer/getitimer

timer_create/timer_destroy/timer_settime个家庭。

每个人都有自己的优势抵消了自己的复杂性。