延时函数sleep和delay的区别

时间:2022-11-21 23:44:05

在VC中使用带上头文件

#include <windows.h>

注意:
在VC中Sleep中的第一个英文字符为大写的”S”
在标准C中是sleep, 不要大写.. 下面使用大写的来说明,, 具体用什么看你用什么编译器. 简单的说VC用Sleep, 别的一律使用sleep.
Sleep函数的一般形式:
Sleep(unisgned long);
其中,Sleep()里面的单位,是以毫秒为单位,所以如果想让函数滞留1秒的话,应该是Sleep(1000);
例:

#include <windows.h>
int main()
{
int a;
a=1000;
Sleep(a); /* VC 使用Sleep */
return 0;
}

usleep功能:
暂停执行。 语法: void usleep(int micro_seconds); 返回值: 无 函数种类: PHP 系统功能 内容说明:本函数可暂时使程序停止执行。参数 micro_seconds 为要暂停的毫秒数(微妙还是毫秒?)。 注意:这个函数不能工作在 Windows 操作系统中。参见:usleep() 与sleep()类似,用于延迟挂起进程。进程被挂起放到reday queue。
只是一般情况下,延迟时间数量级是秒的时候,尽可能使用sleep()函数。
且,此函数已被废除,可使用nanosleep。
如果延迟时间为几十毫秒,或者更小,尽可能使用usleep()函数。这样才能最佳的利用CPU时间

delay:
函数名: delay
功 能: 将程序的执行暂停一段时间(毫秒)
用 法: void delay(unsigned milliseconds);
程序例:

 /* Emits a 440-Hz tone for 500 milliseconds */ 
#include<dos.h>
int main(void)
{
sound(440);
delay(500);
nosound();
return 0;
}

delay()是循环等待,该进程还在运行,占用处理器。

sleep()不同,它会被挂起,把处理器让给其他的进程。

sleep()参数指定暂停时间,单位是ms
delay()参数指定暂停时间,单位也是ms

原文出处:http://blog.csdn.net/jidongdong66/article/details/6334028