sleep函数 read sleep是什么意思

Thread.sleep是什么意思有什么作用

Thread.sleep(long millis)和Thread.sleep(long millis, int nanos)静态方法强制当前正在执行的线程休眠(暂停执行),以“减慢线程”。

当线程睡眠时,它睡在某个地方,在苏醒之前不会返回到可运行状态。

当睡眠时间到期,则返回到可运行状态。

拓展资料:

SLEEP是一种函数,作用是延时,程序暂停若干时间,在执行时要抛出一个中断异常,必须对其进行捕获并处理才可以使用这个函数。

参考资料:百度百科-sleep(函数)

C语言中sleep函数的原理是什么

原理应该是这样的:

例如执行sleep(3),表示当前线程停滞3ms后再继续执行下面的代码,底层步骤是:

  1. 创建一个元素{timeMillis:[当前时间戳+3ms],threadId:[线程id]},并将该元素按顺序插入定时回调队列中,比如现在操作系统中有3个定时正在停滞中,分别是1ms、10ms、3ms之后唤醒,那么这个队列就类似这样子:{timeMillis:110928283,threadId:106}-》{timeMillis:110928285,threadId:211}-》{timeMillis:110928292,threadId:189},时间从小到大排序;

  2. 每当定时器产生一次中断时,中断回调函数中就会获取这个队列中第一个元素,将其timeMillis与当前时间戳比较,如果相等或超时,就表示该元素对应的线程106号线程需要唤醒了,则将106号线程的状态设置为TASK_RUNNING(就绪态),当下一次进程切换时,106线程就可以被切换到并执行了;

  3. 注意:2中说的定时器和系统线程调度时钟定时器我觉得不是一个,而是两个时钟定时器,不确定。

sleep()函数怎么具体在c语言中怎么用

Sleep方法是Java线程(Thread)开发中一种概念。是线程TIMED_WAITING状态中的一种方法。使用方法为:

1、类名为创建线程的类名。

2、Thread线程Sleep方法的示例代码如下图所示。让main方法运行过程中休眠5000毫秒。

3、Thread线程Sleep方法的示例代码执行结果如下图所示。

4、millis参数含义:以毫秒为单位的睡眠时间长度。nanos参数含义:0-999999额外的纳秒睡眠 。

注意事项:

Sleep函数可以使计算机程序(进程,任务或线程)进入休眠,使其在一段时间内处于非活动状态。当函数设定的计时器到期,或者接收到信号、程序发生中断都会导致程序继续执行。

C语言中的sleep() 函数

使用要带上头文件:

#include 《windows.h》

Sleep函数:
功 能: 执行挂起一段时间  
用 法: unsigned sleep(unsigned seconds);  
注意:  
1.在VC中使用带上头文件#include 《windows.h》,在Linux下,gcc编译器中,使用的头文件因gcc版本的不同而不同#include 《unistd.h》 
2.在VC中,Sleep中的第一个英文字符为大写的“S“ ,在linux下不要大写,在标准C中是sleep, 不要大写,简单的说VC用Sleep, 别的一律使用sleep。
3.在VC中,Sleep()里面的单位,是以毫秒为单位,所以如果想让函数滞留1秒的话,应该是Sleep(1000); 在Linux下,sleep()里面的单位是秒,而不是毫秒。
示例:

#include《stdio.h》

#include 《windows.h》  

int main()  
{  
int a=100;  
Sleep(3000);  
printf(“%d“,a);

return 0;
} 
usleep函数:
功能: usleep功能把进程挂起一段时间, 单位是微秒us(百万分之一秒)。
语法: void usleep(int micro_seconds);
返回值: 无
注意:这个函数不能工作在 Windows 操作系统中。
usleep() 与sleep()类似,用于延迟挂起进程。进程被挂起放到reday queue。只是一般情况下,延迟时间数量级是秒的时候,尽可能使用sleep()函数。且此函数已被废除,可使用nanosleep。 
如果延迟时间为几十毫秒,或者更小,尽可能使用usleep()函数。这样才能最佳的利用CPU时间。
delay函数: 
功 能: 将程序的执行暂停一段时间,单位是毫秒ms(千分之一秒)  
用 法: void delay(unsigned milliseconds);  
示例:

#include《dos.h》  
int main(void)  
{  
sound(440);  
delay(500);  
nosound();  
return 0;  
}
delay()是循环等待,该进程还在运行,占用处理器。
sleep()不同,它会被挂起,把处理器让给其他的进程。

sleep函数的具体用法

  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;
  }

Sleep函数的注意

在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。

在c语言中,sleep()怎么用

sleep()用于代码的阻断延迟运行,其用法步骤如下:

需要准备的材料分别有:电脑、C语言编译器。

1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。

2、在test.cpp文件中,输入C语言代码:Sleep(1000);printf(“sleep end.“);。

3、编译器运行test.cpp文件,此时成功执行Sleep()函数在1秒后打打印内容。

c语言的 sleep函数到底在哪个头文件里啊

在《windows.h》里面。

在VC中使用时,sleep函数的头文件为windows。h,在Linux下,gcc编译器中,使用的头文件因gcc版本的不同而不同  

在VC中,Sleep中的第一个英文字符为大写的“S“,在linux下不要大写,在标准C中是sleep,不要大写,简单的说VC用Sleep,别的一律使用sleep  

在VC中,Sleep()里面的单位,是以毫秒为单位,所以如果想让函数滞留1秒的话,应该是Sleep(1000);在Linux下,sleep()里面的单位是秒,而不是毫秒。

扩展资料:

Windows.h头文件之所重要,是因为头文件封装了许多库函数以及一些类,将一些复杂的工作由库函数处理,Windows.h头文件中包含了Windef.h、Winnt.h、Winbase.h、Winuser.h、Wingdi.h等头文件,涉及到了Windows内核API,图形界面接口,图形设备函数等重要的功能。

在C语言家族程序中,头文件被大量使用。一般而言,每个C++/C程序通常由头文件和定义文件组成。头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明,而定义文件用于保存程序的实现。

参考资料来源:百度百科-windows.h

sleep函数休眠是针对进程级别还是线程级别

sleep函数很简单,参数为秒,就是睡眠一段时间。
今天和同事争论,他说sleep的作用是让进程睡眠,我说的是让线程睡眠。谁对谁错?
如果是针对进程,那么进程中的任何一个线种在调用sleep,那么整个进程都会被挂起休眠,这不科学。因此必须是针对线程才是合理的。
别争论了,先看一下man手册吧,如图1所示。

图1
说得很清楚,让调用sleep的线程睡眠一定秒数。
写段程序验证一下吧:

图2
图2中第8行是线程test执行sleep(3),即睡眠3秒。第17行是主线程执行sleep(4),睡眠4秒,如果sleep是进程级别,那么在此情况下,程序执行的时间应该大于等于7秒才对。因为操作系统在调度的时候,要么先调度线程test,要么先调度主线程main。总有一个sleep会把整个进程阻塞,一共会阻塞两次,因此是两个阻塞的时间之和再加上陷入内核、上下文切换的时间,肯定大于等于7秒。下面是执行结果

图3
执行时间是4.003秒,也就是程序执行时间是以主线程的睡眠4秒(第18行的sleep(4))为主,这说明sleep是线程级别的。
接着问,如何才能让程序执行时间是7秒以上呢,也就是让两个线程test和主线程依次执行?
这很简单,主线程main用pthread_join,让调用线程main自己阻塞,等待线程test执行完成后再执行main就行了。改下代码,如图4所示。

图4
就是在第17行加了pthread_join函数,让main线程等待test线程,下面是运行结果。

好了,多谢大家。

c语言sleep用法

C语言标准库中没有sleep这个函数,它实际上是一个系统API函数。

函数功能: 执行挂起一段时间

1、在VC中使用带上头文件,而且全称为Sleep(),第一个字母需要大写。

  #include 《windows.h》 //需要添加头文件
   Sleep(unisgned long); //函数声明

  Windows中,Sleep()里面的单位,是以毫秒为单位,所以如果想让函数滞留1秒的话,应该写成:

     Sleep(1000);

2、在gcc中,使用的头文件因gcc版本的不同而不同,一般来说,linux系统需要添加的头文件为:

  #include 《unistd.h》

应该是Sleep(1000);

  在Linux下,sleep()里面的单位是秒,而不是毫秒。