使当前线程在C中休眠特定时间

时间:2014-06-10 11:46:28

标签: c multithreading thread-sleep

我想知道是否有任何方法让当前线程在C 中的特定时间间隔内休眠。我在项目中有很多文件,只希望文件中的一个函数在特定时间内休眠,同时可以访问同一文件中的其他函数。下面我想做的事情 -

void otherfunction()< - 其他程序应该能够在somefunction()休眠时访问otherfunction()。

   void somefunction()
   {
       //sleep for 2sec.
   }

2 个答案:

答案 0 :(得分:2)

用于睡眠的POSIX函数称为sleep()。您可以使用秒数作为参数调用它。

答案 1 :(得分:0)

这是一个微秒睡眠功能,用于跨平台睡眠:

void MicroSleep(int n) {
    #ifdef WIN32
        ::Sleep(n);
    #else
        struct timeval tm;
        unsigned long seconds = n/1000;
        unsigned long useconds = n%1000;
        if (useconds > 1000) { useconds -= 1000; seconds++; }
        useconds*=1000; // using usec
        tm.tv_sec = seconds;
        tm.tv_usec = useconds;
        select(0, 0, 0, 0, &tm);
    #endif
}