sleep函数的具体用法
查看sleep函数是使程序休眠多少ms的时间,现在我的问题是,有的时候用sleep会阻塞,有的时候是挂起,我的理解是在主线程中是阻塞,在多线程中是挂起,不知道这样理解对不...
查看sleep函数是使程序休眠多少ms的时间,现在我的问题是,有的时候用sleep会阻塞,有的时候是挂起,我的理解是在主线程中是阻塞,在多线程中是挂起,不知道这样理解对不对?还请帮忙分析分析。
那是不是在多线程中使用sleep使程序挂起的时候,这个线程立马让出cpu给其他线程或程序处理?而不是一直占用cpu直到分配的time结束。 展开
那是不是在多线程中使用sleep使程序挂起的时候,这个线程立马让出cpu给其他线程或程序处理?而不是一直占用cpu直到分配的time结束。 展开
2个回答
展开全部
Sleep函数
功 能: 执行挂起一段时间
用 法: void Sleep(DWORD dwMilliseconds);
在VC中使用带上头文件
#include <windows.h>
( Sleep函数存放头文件:WinBase.h)
在gcc编译器中,使用的头文件因gcc版本的不同而不同
#include <unistd.h>
Sleep()单位为毫秒,sleep()单位为秒(如果需要更精确可以用usleep单位为微秒)
返回值:若进程/线程挂起到参数所指定的时间则返回0,若有信号中断则返回剩余秒数。
注意:
在VC中Sleep中的第一个英文字符为大写的"S"
在标准C中是sleep, 不要大写.. 下面使用大写的来说明,, 具体用什么看你用什么编译器. 简单的说VC用Sleep, 别的一律使用sleep.
Sleep函数的一般形式:
Sleep(unsigned long);
其中,Sleep()里面的单位,是以毫秒为单位,所以如果想让函数滞留1秒的话,应该是Sleep(1000);
在Linux下,sleep中的“s”不大写
sleep()单位为秒,usleep()里面的单位是微秒。在内核中,sleep的实现是由pause函数和alarm函数两个实现的。
特别注意在Codeblocks环境下是无法使用sleep函数的,因为在windows上Codeblocks采用mingw(Gnu在Window环境下的编译器,可以充分使用WindowsApi)作为编译器,而在stdlib.h中sleep的说明如下:_CRTIMP void __cdecl __MINGW_NOTHROW _sleep (unsigned long) __MINGW_ATTRIB_DEPRECATED;可以认为mingw舍弃了sleep函数,建议用Sleep实现sleep。
程序示例:
#include <windows.h>
#include<stdio.h>
int main()
{
int a;
a=1000;
printf("你");
Sleep(a);/* VC 使用Sleep*/
printf("好"); /*输出“你”和“好”之间会间隔一千毫秒,即间隔一秒,sleep()的单位为毫秒*/
return 0;
}
功 能: 执行挂起一段时间
用 法: void Sleep(DWORD dwMilliseconds);
在VC中使用带上头文件
#include <windows.h>
( Sleep函数存放头文件:WinBase.h)
在gcc编译器中,使用的头文件因gcc版本的不同而不同
#include <unistd.h>
Sleep()单位为毫秒,sleep()单位为秒(如果需要更精确可以用usleep单位为微秒)
返回值:若进程/线程挂起到参数所指定的时间则返回0,若有信号中断则返回剩余秒数。
注意:
在VC中Sleep中的第一个英文字符为大写的"S"
在标准C中是sleep, 不要大写.. 下面使用大写的来说明,, 具体用什么看你用什么编译器. 简单的说VC用Sleep, 别的一律使用sleep.
Sleep函数的一般形式:
Sleep(unsigned long);
其中,Sleep()里面的单位,是以毫秒为单位,所以如果想让函数滞留1秒的话,应该是Sleep(1000);
在Linux下,sleep中的“s”不大写
sleep()单位为秒,usleep()里面的单位是微秒。在内核中,sleep的实现是由pause函数和alarm函数两个实现的。
特别注意在Codeblocks环境下是无法使用sleep函数的,因为在windows上Codeblocks采用mingw(Gnu在Window环境下的编译器,可以充分使用WindowsApi)作为编译器,而在stdlib.h中sleep的说明如下:_CRTIMP void __cdecl __MINGW_NOTHROW _sleep (unsigned long) __MINGW_ATTRIB_DEPRECATED;可以认为mingw舍弃了sleep函数,建议用Sleep实现sleep。
程序示例:
#include <windows.h>
#include<stdio.h>
int main()
{
int a;
a=1000;
printf("你");
Sleep(a);/* VC 使用Sleep*/
printf("好"); /*输出“你”和“好”之间会间隔一千毫秒,即间隔一秒,sleep()的单位为毫秒*/
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询