sleep函数的具体用法

查看sleep函数是使程序休眠多少ms的时间,现在我的问题是,有的时候用sleep会阻塞,有的时候是挂起,我的理解是在主线程中是阻塞,在多线程中是挂起,不知道这样理解对不... 查看sleep函数是使程序休眠多少ms的时间,现在我的问题是,有的时候用sleep会阻塞,有的时候是挂起,我的理解是在主线程中是阻塞,在多线程中是挂起,不知道这样理解对不对?还请帮忙分析分析。
那是不是在多线程中使用sleep使程序挂起的时候,这个线程立马让出cpu给其他线程或程序处理?而不是一直占用cpu直到分配的time结束。
展开
 我来答
艳阳高照的午后
推荐于2017-09-29 · TA获得超过1万个赞
知道大有可为答主
回答量:1.2万
采纳率:97%
帮助的人:4739万
展开全部
  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;
  }
xjc_cd
2010-06-22 · TA获得超过413个赞
知道小有建树答主
回答量:445
采纳率:0%
帮助的人:432万
展开全部
你理解的正确,
这个就没必要再详细分析了,个人认为研究这个意义不大。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式