C中的delay()和sleep()之间的区别?

时间:2015-07-23 13:53:03

标签: c delay sleep

delay()和sleep()函数都暂停系统一段时间,延迟以毫秒为参数,而睡眠以秒为参数。除此之外,这两个功能有什么不同吗?其中,哪个更准确?

2 个答案:

答案 0 :(得分:2)

他们做同样的事情,除了一个人睡了几秒钟而另一个人睡了几毫秒。

您应该使用Reference to std::this_thread::sleep_for

std::this_thread::sleep_for
如果可以,

而不是c ++。 windows.h有睡眠,unix有睡眠。

这是在线发现的另一种可能更符合您需求的实现:

#if defined(__WIN32__) || defined(_WIN32) || defined(WIN32) || defined(__WINDOWS__) || defined(__TOS_WIN__)

  #include <windows.h>

  inline void delay( unsigned long ms )
    {
    Sleep( ms );
    }

#else  /* presume POSIX */

  #include <unistd.h>

  inline void delay( unsigned long ms )
    {
    usleep( ms * 1000 );
    }

#endif

答案 1 :(得分:0)

睡眠将CPU释放指定的数量,以便其他进程可以执行。 虽然Delay只是忙于等待金额到期,然后在到期后继续,但是在此期间它不执行任何其他过程。