查询线程运行时间?

时间:2012-02-06 11:26:14

标签: c linux

伪代码:

flag = FALSE;

func1()
   sleep(30);
   flag = TRUE;
   ...


func2()
  if (FALSE == flag)
  {  printf("Wait for %d seconds", xyz);
     return;
  }
  ...

一个线程执行func1(),另一个线程运行func2()。 我想知道等待睡眠的确切时间,可以通过func2向用户显示。有没有办法,给定线程id来获取线程的运行时间?

目前,做这样的事情:

flag = FALSE;
time_t start;

func1()
   time(&start);
   sleep(30);
   flag = TRUE;
   ...


func2()
  time_t now;
  if (FALSE == flag)
     { time(&now); 
       printf("Wait for %d seconds", (int)(30-(now-start)));
       return;
     }
  ...

上述内容是否合理?

  • Linux 2.6 +
  • getrusage()和clock_gettime()看起来有点过分。是否有任何相关的pthread API?
  • 不想使用信号来中断睡眠呼叫。

感谢您的意见/建议。

0 个答案:

没有答案