对于做过单片机程序的朋友来说,delay是很常见的函数,通常就是while或者for循环,进行空指令的执行,由于单片机的晶振固定,一个机器周期的时间是固定的,执行多少个空指令, 就可以完成多少个机器周期时长的延时。其实在linux中的delay函数,道理是一样的,都是通过cpu执行空指令来达到延时的目的,但是对于操作系统这种多线程进行的方式来说,在需要延时的时候,可以通过将进程挂起的方式来实现延时。这就是sleep函数。

sleep和delay的区别

最明显也最重要的区别就是,在执行delay的时候,是执行了空指令,虽说是空的,但是还是会占用硬件资源,cpu要进行运算。而sleep是将此进程挂起,cpu还会执行其他进程,待到时间到,再恢复此进程。两者对比可以看出,sleep执行的时候,节省系统资源,但是弊端是sleep的定时并没有那么准确,因为是通过进程切换来实现的,delay则是严格按照机器周期来计算,而且sleep不能适用于时间太短的延时,delay可以精确到us。

应用场景

当我们希望执行一个脚本之后延时五秒再执行另外一个脚本,这个时候就可以用sleep。
当我们在设置一个芯片的各种引脚时序的时候,间隔较短且要求更准确,就需要delay。

linux中的sleep函数和delay函数相关推荐

  1. Linux绘图函数与驱动,Linux中与驱动相关的ioctl函数

    一:    ioctl函数的作用 ioctl用于向设备发控制和配置命令 ,有些命令也需要读写一些数据,但这些数据是不能用read/write读写的,称为Out-of-band数据.也就是说,read/ ...

  2. linux中strlen的用法,实现strlen()函数,strcmp()函数 const知识点

    实现strlen()函数,strcmp()函数 const知识点 发布时间:2020-08-03 05:49:13 来源:51CTO 阅读:576 作者:汇天下豪杰 1.strlen()函数的实现:# ...

  3. linux中i2c的ioctl,write,read函数的使用

    一.ioctl函数的使用: 原型:struct ioctl(struct file *file,unsigned int cmd,unsigned long arg); cmd有I2C_SLAVE,I ...

  4. linux中C语言获取高精度时钟gettimeofday函数

    原文地址::https://blog.csdn.net/balingybj/article/details/48293817 相关文章 1.gettimeofday()函数的使用方法----https ...

  5. 摸了好久,终于把linux中i2c的ioctl,write,read函数的使用弄懂了

    ioctl函数的使用: 原型:struct ioctl(struct file *file,unsigned int cmd,unsigned long arg);  cmd有I2C_SLAVE,I2 ...

  6. linux 创建进程 execl,linux中进程的vfork()和execl()函数

    看我下面的程序,还有问题可以baidu hi我 #include #include #include #include int main(int argc, const char *argv[]) { ...

  7. c51简单delay函数,不同类型同值字符的延时时间不同

    c51简单delay函数,不同类型同值字符的延时时间 一. 简单delay函数(晶振频率 11.0592 MHZ) #define uchar unsigned char #define uint u ...

  8. Linux中main是如何执行的

    Linux中main是如何执行的 这是一个看似简单的问题,但是要从Linux底层一点点研究问题比较多.找到了一遍研究这个问题的文章,但可能比较老了,还是在x86机器上进行的测试. 原文链接 开始 问题 ...

  9. linux下后缀为so的文件怎么打开,linux中.so后缀的文件怎么使用啊

    参考1:http://zhidao.baidu.com/link?url=Zx0t6DMIpPvMNhIKZEudJOmDR4MXcr-B5_KbELCIoNz1jnJ7A_--J-qIaiVkYIi ...

最新文章

  1. 提到“子类”和“子类型”是不同的
  2. ubuntu下主目录的路径是什么
  3. C++fast power快速指数的实现(附完整源码)
  4. leetcode-21-合并两个有序链表
  5. layer中嵌套的页面如何操作父页面_layui框架中layer父子页面交互详细解说
  6. 计算机函数公式中怎么合并合并,Excel用函数和公式瞬间实现把表格全部合并到一个表中去...
  7. hihocoder 1580 Matrix(北京icpc2017网络赛)
  8. [MySQL] MySQL x64 下载地址
  9. 【LeetCode】【字符串】题号:*344. 反转字符串
  10. Windows服务器基本安全策略配置
  11. c语言源文件经过编译后生成文件的后缀是什么?
  12. M0、M1、M2、M3、M4
  13. mybatis一个怪异的问题: Invalid bound statement not found 作者及来源: babyblue - 博客园 收藏到→_→: 摘要: mybatis一个怪异
  14. 迷你播放器--第一阶段(3)--MediaPlayer的封装
  15. 自称菜鸟的二本大龄程序员居然拿到百度offer,还有嘉实offer(百度三面面经)
  16. mysql leng() 与 char_length() 的区别,注意一下。
  17. linux 中的 super 命令
  18. 手动挡五个档位示意图_手动挡汽车档位图解?
  19. GNU/Linux 正则表达式与三剑侠(grep,sed,awk)(精)
  20. WinCCV7.4sp1在win10

热门文章

  1. CPU、内存、缓存的关系
  2. 算法中的大O是什么意思
  3. NO7 显式的终结方法
  4. Coin-row problem
  5. SQL注入——SQL注入具体防御方案
  6. 水果食用大全 -- 果品食疗 - 杏
  7. 工控系统的全球安全现状:全球漏洞实例分析
  8. 二维码扫码登录的原理
  9. in-place运算总结
  10. OJ刷题---鸡兔同笼问题