linux中的sleep函数和delay函数

news/2025/3/15 11:16:58/

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

sleep和delay的区别

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

应用场景

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


http://www.ppmy.cn/news/810118.html

相关文章

【51单片机C语言】2-1模块化Delay函数

1.新建一个Delay.c文件和Delay.h文件 2.Delay.c中,Delay函数代码如下:(11.0592MHz,可以由stc软件自带的计算器计算出来) //Delay函数模块化 void Delay(unsigned int xms) //Delay Function 11.0592MHz {unsigned c…

STM32delay函数应用与说明

STM32delay函数应用应用与说明 Cortex M4内核编程手册有关时钟系统的内容定时函数的实现delay_init 函数delay_us 函数 对与32中的delay函数有很多中形式可以使用,这里提供一些自己使用遇到过的函数类型。 Cortex M4内核编程手册有关时钟系统的内容 p230 SysTick t…

android wait函数使用,Android Sleep/Wait/Delay函数

首先,我是一个初学Android的世界,所以请道歉,如果这是愚蠢的问题.. 我正在尝试做以下事情: 启用移动数据 等待10秒 一个。检查Mobile是否有IP地址(数据连接成功) 湾如果未连接,则禁用数据 C。转到第1步 这些步骤1到3在For循环中执行用户给定的重试次数。 现在我的问题是:…

delay函数

在VC中使用带上头文件#include <windows.h>注意:在VC中Sleep中的第一个英文字符为大写的"S"在标准C中是sleep, 不要大写.. 下面使用大写的来说明,, 具体用什么看你用什么编译器. 简单的说VC用Sleep, 别的一律使用sleep.Sleep函数的一般形式:Sleep(unisgned lon…

c语言delay函数的作用,delay函数 delay() c语言延迟函数

51单片机C语言中delay函数是怎么定义和使用的?很多时候我们看别人的故事哀其不幸恨其不争等到发现在自己身上好像突然就明白了别人的道理。 void Delay (unsigned int a){ unsigned int i; while( a 。= 0){ for(定义一个延时xms毫秒的延时函数 void delay(unsigned int xms) …

c语言delay函数的作用,delay用法(delay函数使用)

是delay to do 还是delay doing 还是delay do?还是什么啊~~ 问下 delayvt.延期, 延缓; 推迟We decided to delay our holiday until next month.我们决定将休假延至下个月。所以应该是delay doing 函数名: delay 功 能: 将程序的执行暂停一段时间(毫秒) 用 法: void dela…

python中delay__python delay函数

Python 中的sleep函数 本人是Python菜鸟一枚,今天用python时,发现如果按照下图所示来写程序在我的Python环境(Win7+Python2.7.9)下测试没问题,是等待5秒后再输出 m。 你的问题可能是被标准输出流的缓冲区缓冲了,给 stdout 加一个 flush 就可以了: from time import sleepf…

delay函数c语言例子,模拟delay函数

使用标准函数 clock 模拟非标准函数 delay 。只是出于娱乐目的&#xff0c;没什么移植性&#xff0c;因为 clock() 不一定每次都能获取程序当前运行了多久&#xff0c;如果不能获取&#xff0c;则返回 -1 。 代码如下&#xff1a; // C 版本 // 文件名&#xff1a;my_delay.cpp…