如何在几秒钟内打印线程的生命周期?

时间:2017-10-30 18:17:05

标签: c pthreads

我需要在x秒后打印一个线程的生命,我可以通过sleep()函数来延迟它,但我不知道如何打印线程的生命。

    #include <stdio.h>
    #include <time.h>

   void *thread_life(void *arg)
   {

    while(1) 
     {
          printf("\n"); //print time 
          sleep(3);
     }


}

1 个答案:

答案 0 :(得分:2)

阅读time(7)。理解有几种时间概念(参见clock_gettime(2)):经过时间,单调时间,线程CPU时间,进程CPU时间。

要获取当前日期和时间(作为字符串),请使用time(2)localtime_r(3)strftime(3)

如果您需要等待一段时间,请使用pause(2)nanosleep(2)poll(2)进行闲置等待。

顺便说一下,不要忘记printf(更确切地说是stdout)是缓冲的(通常是行缓冲的)。请参阅stdio(3)fflush(3)

还阅读一些pthread tutorial(特别是要了解互斥体,条件变量,广播......)。另请参阅pthreads(7)signal(7)。请记住,线程需要加入(pthread_join(3))或分离(pthread_detach(3))。