前几天分析MAC上的一段代码,偶然看到usleep这个函数,打开MSDN居然查不到这个函数,对应的在windows上,只有Sleep函数。百度了一下:
语法:
void usleep(int micro_seconds);
返回值:
无
内容说明:
本函数可暂时使程序停止执行。
参数
micro_seconds 为要暂停的微秒数(us)。
注意:
这个函数不能工作在 Windows 操作系统中。参见:usleep() 与sleep()类似,用于延迟挂起进程。进程被挂起放到reday queue。
只是一般情况下,延迟时间数量级是秒的时候,尽可能使用sleep()函数。且此函数已被废除,可使用nanosleep。如果延迟时间为几十毫秒(1ms = 1000us),或者更小,尽可能使用usleep()函数。这样才能最佳的利用CPU时间。
在windows下使用Sleep函数,需要包含头文件windows.h;在MAC/LINUX上使用需要包含头文件unistd.h。
注意:unistd的意思是Unix Standard的意思,里面定义的宏一类的东西都是为了Unix标准服务的(一般来说包括了POSIX的一些常量)
可以使用如下的方式:
#ifdef WIN32
#include <windows.h>
#else
#include <unistd.h>
#endif
但是如果在MAC上使用QT编程,并且在QThread中使用了usleep函数,则此处的usleep函数就是QThread中的了。