当前位置:  技术问答>linux和unix

sleep() 函数的原理是什么

    来源: 互联网  发布时间:2016-12-07

    本文导语:      clock_t start=clock();     sleep(5);     clock_t end=clock();     float time=(float)(end-start)/CLOCKS_PER_SEC;     printf("Sleep clock:%fn",time); 结果是:0.000000 sleep与时钟有什么关系呢,其原理是什么。 | sleep把进程的运...


    clock_t start=clock();
    sleep(5);
    clock_t end=clock();
    float time=(float)(end-start)/CLOCKS_PER_SEC;
    printf("Sleep clock:%fn",time);

结果是:0.000000

sleep与时钟有什么关系呢,其原理是什么。

|
sleep把进程的运行状态改为睡眠,将其从系统可执行队列去掉,这样系统就不会调度到该进程,不会分配CPU时间片。同时根据该进程的睡眠时间,将进程挂入相应的定时器队列中。
同时内核维持一个定时器队列,每一次时钟中断处理,都把当前到期的队列中的进程唤醒,加入到可运行进程队列中。 同时对所有挂入定时器队列中的进程时间值减1,

|
clock 返回的是CPU的使用时间吧
在sleep 过程中,没有使用cpu时间,所以end=start

|
sleep的原理是這樣的,首先獲取當前系統滴答數A,然後再加上需要sleep的時長結合CPU時鐘頻率計算得到的滴答數B。再來一個while循環,循環體中不停獲取當前滴答數,大於(A+B)時跳出循環,函數返回。

    
 
 

您可能感兴趣的文章:

  • linux的sleep函数有什么用
  • JAVA里有没有类似SLEEP的函数?
  • 请问一下sleep_on_timeout函数的返回直问题(在线等)
  • 怎么知道哪些函数需要连接什么库,如memset,sleep等等
  • Linux 中的 sleep() 函数如何精确到 1 毫秒?
  • Linux下是否有类似Sleep的使程序挂起的函数。
  • 请教Linux下的sleep()函数。。。
  • unix环境高级编程 第十章十九节sleep函数实现为什么要先阻塞SIGALRM?
  • select/sleep函数难道不能够被一个进程中的多个线程调用?
  • 在线程里面使用sleep函数是否会引起整个的进程都睡眠
  • 在线程中sleep函数休眠的问题
  • Linux 0.12内核中关于__sleep_on()函数的一点疑问,谢谢各位大哥帮忙解答啦。
  • nanosleep小延时不能实现,这个函数和select、sleep用什么区别
  • 求 思路 信号量控制函数中的线程sleep 100微秒。(linux)
  • sleep 的替代函数如何实现
  • 请教下linux中关于sleep()函数的问题
  • 急求~~~~sleep()函数的疑惑
  • linux下调用sleep或者usleep函数的CPU线程调度情况?
  • PHP中使用sleep函数实现定时任务实例分享
  • 信号处理中sleep函数失效的问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.util.concurrent枚举timeunit的类成员方法: sleep定义及介绍
  • 请问大侠们,线程中sleep到底行不行?? 希望是线程sleep的终结帖!!
  • java命名空间java.lang类thread的类成员方法: sleep定义及介绍
  • sleep在哪个头文件啊
  • sleep是进程域还是线程域的?
  • crond和sleep比较?
  • Linux sleep() 进程与线程
  • man sleep的问题
  • 有什么系统调用的sleep是以毫秒作为精度的?
  • linux下的SLEEP N(SECONDS)是什么用的?
  • 送分! UNIX C编程。 如何休眠5秒钟? 类似WINDOWS下的Sleep(5000).
  • windows下死循环需要加sleep,否则CPU爆满, linux下呢?
  • 为什么要将一个进种sleep掉
  • sleep
  • 求教sleep(1000),着急!着急!着急!
  • 请教sleep和pthread_delay_np:阻塞线程/阻塞进程?
  • java 线程,对当前线程(非主线程)调用sleep,为什么主线程(窗口)也没反应了
  • UNIX下用 sleep 时,进程不回响应,kill 都不行,都没有别的办法?
  • LINUX下访问oracle时sleeping的线程过多,达到300多个,造成系统拥堵!
  • java里有没有象vc里的sleep(1000)一样的功能的东西 当然不是实现Runnable不是继承线程类
  • linux一个sleep的奇怪问题,高手来给解答下了


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3