linux中的sleep函数和delay函数
对于做过单片机程序的朋友来说,delay是很常见的函数,通常就是while或者for循环,进行空指令的执行,由于单片机的晶振固定,一个机器周期的时间是固定的,执行多少个空指令, 就可以完成多少个机器周期时长的延时。其实在linux中的delay函数,道理是一样的,都是通过cpu执行空指令来达到延时的目的,但是对于操作系统这种多线程进行的方式来说,在需要延时的时候,可以通过将进程挂起的方式来实现延时。这就是sleep函数。
sleep和delay的区别
最明显也最重要的区别就是,在执行delay的时候,是执行了空指令,虽说是空的,但是还是会占用硬件资源,cpu要进行运算。而sleep是将此进程挂起,cpu还会执行其他进程,待到时间到,再恢复此进程。两者对比可以看出,sleep执行的时候,节省系统资源,但是弊端是sleep的定时并没有那么准确,因为是通过进程切换来实现的,delay则是严格按照机器周期来计算,而且sleep不能适用于时间太短的延时,delay可以精确到us。
应用场景
当我们希望执行一个脚本之后延时五秒再执行另外一个脚本,这个时候就可以用sleep。
当我们在设置一个芯片的各种引脚时序的时候,间隔较短且要求更准确,就需要delay。
linux中的sleep函数和delay函数相关推荐
- Linux绘图函数与驱动,Linux中与驱动相关的ioctl函数
一: ioctl函数的作用 ioctl用于向设备发控制和配置命令 ,有些命令也需要读写一些数据,但这些数据是不能用read/write读写的,称为Out-of-band数据.也就是说,read/ ...
- linux中strlen的用法,实现strlen()函数,strcmp()函数 const知识点
实现strlen()函数,strcmp()函数 const知识点 发布时间:2020-08-03 05:49:13 来源:51CTO 阅读:576 作者:汇天下豪杰 1.strlen()函数的实现:# ...
- linux中i2c的ioctl,write,read函数的使用
一.ioctl函数的使用: 原型:struct ioctl(struct file *file,unsigned int cmd,unsigned long arg); cmd有I2C_SLAVE,I ...
- linux中C语言获取高精度时钟gettimeofday函数
原文地址::https://blog.csdn.net/balingybj/article/details/48293817 相关文章 1.gettimeofday()函数的使用方法----https ...
- 摸了好久,终于把linux中i2c的ioctl,write,read函数的使用弄懂了
ioctl函数的使用: 原型:struct ioctl(struct file *file,unsigned int cmd,unsigned long arg); cmd有I2C_SLAVE,I2 ...
- linux 创建进程 execl,linux中进程的vfork()和execl()函数
看我下面的程序,还有问题可以baidu hi我 #include #include #include #include int main(int argc, const char *argv[]) { ...
- c51简单delay函数,不同类型同值字符的延时时间不同
c51简单delay函数,不同类型同值字符的延时时间 一. 简单delay函数(晶振频率 11.0592 MHZ) #define uchar unsigned char #define uint u ...
- Linux中main是如何执行的
Linux中main是如何执行的 这是一个看似简单的问题,但是要从Linux底层一点点研究问题比较多.找到了一遍研究这个问题的文章,但可能比较老了,还是在x86机器上进行的测试. 原文链接 开始 问题 ...
- linux下后缀为so的文件怎么打开,linux中.so后缀的文件怎么使用啊
参考1:http://zhidao.baidu.com/link?url=Zx0t6DMIpPvMNhIKZEudJOmDR4MXcr-B5_KbELCIoNz1jnJ7A_--J-qIaiVkYIi ...
最新文章
- 提到“子类”和“子类型”是不同的
- ubuntu下主目录的路径是什么
- C++fast power快速指数的实现(附完整源码)
- leetcode-21-合并两个有序链表
- layer中嵌套的页面如何操作父页面_layui框架中layer父子页面交互详细解说
- 计算机函数公式中怎么合并合并,Excel用函数和公式瞬间实现把表格全部合并到一个表中去...
- hihocoder 1580 Matrix(北京icpc2017网络赛)
- [MySQL] MySQL x64 下载地址
- 【LeetCode】【字符串】题号:*344. 反转字符串
- Windows服务器基本安全策略配置
- c语言源文件经过编译后生成文件的后缀是什么?
- M0、M1、M2、M3、M4
- mybatis一个怪异的问题: Invalid bound statement not found 作者及来源: babyblue - 博客园 收藏到→_→: 摘要: mybatis一个怪异
- 迷你播放器--第一阶段(3)--MediaPlayer的封装
- 自称菜鸟的二本大龄程序员居然拿到百度offer,还有嘉实offer(百度三面面经)
- mysql leng() 与 char_length() 的区别,注意一下。
- linux 中的 super 命令
- 手动挡五个档位示意图_手动挡汽车档位图解?
- GNU/Linux 正则表达式与三剑侠(grep,sed,awk)(精)
- WinCCV7.4sp1在win10