社区
C语言
帖子详情
for 循环延时 与 sleep延时 区别
ylsl917
2007-12-18 11:52:46
请问 我执行一个空的for循环 比如
for(long j=0;j<10000;j++)
{
}
与 sleep() 有什么区别
...全文
1154
7
打赏
收藏
for 循环延时 与 sleep延时 区别
请问 我执行一个空的for循环 比如 for(long j=0;j<10000;j++) { } 与 sleep() 有什么区别
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
luckqt
2007-12-18
打赏
举报
回复
C 语言中for循环用于延时(网上找来的)
for(i=delay;i>0;i--);
下面来举例几个延时函数:
一. 500ms延时子程序
void delay500ms(void)
{
unsigned char i,j,k;
for(i=15;i>0;i--)
for(j=202;j>0;j--)
for(k=81;k>0;k--);
}
产生的汇编代码:
C:0x0800 7F0F MOV R7,#0x0F
C:0x0802 7ECA MOV R6,#0xCA
C:0x0804 7D51 MOV R5,#0x51
C:0x0806 DDFE DJNZ R5,C:0806
C:0x0808 DEFA DJNZ R6,C:0804
C:0x080A DFF6 DJNZ R7,C:0802
C:0x080C 22 RET
计算分析:
程序共有三层循环
一层循环n:R5*2 = 81*2 = 162us DJNZ 2us
二层循环m:R6*(n+3) = 202*165 = 33330us DJNZ 2us + R5赋值 1us = 3us
三层循环: R7*(m+3) = 15*33333 = 499995us DJNZ 2us + R6赋值 1us = 3us
循环外: 5us 子程序调用 2us + 子程序返回 2us + R7赋值 1us = 5us
延时总时间 = 三层循环 + 循环外 = 499995+5 = 500000us =500ms
计算公式:延时时间=[(2*R5+3)*R6+3]*R7+5
mymtom
2007-12-18
打赏
举报
回复
for 循环会占用CPU, sleep不会。
飞哥
2007-12-18
打赏
举报
回复
for循环? 这也太恐怖了吧
luckqt
2007-12-18
打赏
举报
回复
提供一个连接
VC中基于 Windows 的精确定时
http://www.vckbase.com/document/viewdoc/?id=1301
VC中使用sleep()函数实现延时,它的单位是ms,如延时2秒,用sleep(2000)。精度非常低,最小计时精度仅为30ms,用sleep函数的不利处在于延时期间不能处理其他的消息,如果时间太长,就好象死机一样,CPU占用率非常高,只能用于要求不高的延时程序中。
Treazy
2007-12-18
打赏
举报
回复
void sleep(unsigned seconds)
sleep是让程序停止运行second秒
但是for是循环,程序本身还是在运行
另外for的执行周期是要根据pc的机器周期来决定的
所以在做延时的时候,上面2个方法都不是最佳的(我指精确定时)
一般常用的方法是用定时器!
当然在精度不高的情况下,使用软件模拟定时也是可行的!
NKLoveRene
2007-12-18
打赏
举报
回复
这要是破机器,for一下就down了。。。
skywarship
2007-12-18
打赏
举报
回复
多任务系统中程序通过调用sleep主动交出系统分配的时间片,于是这些时间片可以被用于其他程序的执行,当经过了调用sleep时指定的时间时系统唤醒程序,使之得以继续运行(窃以为并不是立即开始运行,只是可以继续运行)。
用for循环延时时,由于程序仍在运行中,并未交出时间片资源,在多任务系统中可以说是浪费了处理器资源。
单任务系统中由于运行中的程序总是独占全部处理器资源,所以for循环延时和用sleep的方式没有实质性区别。
BAT脚本程序实现10秒
延
时
利用bat批处理程序实现10秒
延
时
实现方法简单,使用方便
西门子之如何在脚本中实现等待(
延
时
)函数?.pdf
西门子之如何在脚本中实现等待(
延
时
)函数?pdf,西门子之如何在脚本中实现等待(
延
时
)函数?在“的Visual Basic脚本(VBS)”中没有缺省的
延
时
或等待函数。然而,可以在WinCC flexible中的脚本中使用系统
时
间和一个简单的
循环
实现
延
时
函数。 .....
尹成Python27天入门到项目实战
复杂逻辑
循环
while与whileelse编程风格
循环
控制图形绘制while猜数字输入输出重定向while习题分析可以退出的命令系统for初步简介跑分流程结合for
循环
小结forfor嵌套forfor分析break中断
循环
contiune结束本次
循环
双层...
python3
sleep
延
时
秒 毫秒实例
Python中的
sleep
函数可以传小数进去,然后就可以进行毫秒级的
延
时
了 # 例1:
循环
输出休眠1秒 import time i = 1 while i = 3: print(i) # 输出i i += 1 time.
sleep
(1) # 休眠1秒 # 例1:
循环
输出休眠100毫秒 import time i = 1 while i = 3: print(i) # 输出i i += 1 time.
sleep
(0.1) # 休眠0.1秒 补充知识:python
延
时
执行下一步 在代码开头引入time模块:import time 在需要
延
时
的地方加入语句:time.sle
Lua中实现
sleep
函数功能的4种方法
主要介绍了Lua中实现
sleep
函数功能的4种方法,本文讲解了在一个死
循环
中设置一个跳出条件方法、调用系统的
sleep
函数法、Windows下ping命令法、socket库中select函数法4种方法,需要的朋友可以参考下
C语言
69,381
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章