在C语言的教学当中,利用Sleep()等函数通过更加直观的显示效果,来使循环嵌套的层次更加清晰,break和continue等作用更加直观;通过硬件思维中的内存结构可以使初学者对指针有一个最根本也是最直接的认识,从而学生无论是对指针的认知还是使用,都将变得非常容易。 下面我就跟大家介绍下c语言sleep的用法。 Sleep函数: 功 能: 执行挂起一段时间 用 法: unsigned sleep(unsigned seconds); 注意: 在VC中使用带上头文件#include <windowsh>,在Linux下,gcc编译器中,使用的头文件因gcc版本的不同而不同#include <unistdh> 在VC中,Sleep中的第一个英文字符为大写的"S" ,在linux下不要大写,在标准C中是sleep, 不要大写,简单的说VC用Sleep, 别的一律使用sleep 在VC中,Sleep()里面的单位,是以毫秒为单位,所以如果想让函数滞留1秒的话,应该是Sleep(1000); 在Linux下,sleep()里面的单位是秒,而不是毫秒。 示例: #include <windowsh> int main() { int a; a=1000; Sleep(a); return 0; } usleep函数: 功能: usleep功能把进程挂起一段时间, 单位是微秒us(百万分之一秒)。 语法: void usleep(int micro_seconds); 返回值: 无 注意:这个函数不能工作在 Windows *** 作系统中。 usleep() 与sleep()类似,用于延迟挂起进程。进程被挂起放到reday queue。只是一般情况下,延迟时间数量级是秒的时候,尽可能使用sleep()函数。且此函数已被废除,可使用nanosleep。 如果延迟时间为几十毫秒,或者更小,尽可能使用usleep()函数。这样才能最佳的利用CPU时间。 delay函数: 功 能: 将程序的执行暂停一段时间,单位是毫秒ms(千分之一秒) 用 法: void delay(unsigned milliseconds); 示例: #include<dosh> int main(void) { sound(440); delay(500); nosound(); return 0; } delay()是循环等待,该进程还在运行,占用处理器。 sleep()不同,它会被挂起,把处理器让给其他的进程。
1:线程相关性来讲,没什么问题,sleep函数不是线程相关的,不存在共享资源的问题
2:多线程中sleep,主要考虑sleep的cpu占用问题,在sleep的时候,如果该线程占有其他线程资源(例如需要线程同步),那其他线程也会被卡主,这点是在设计过程中需要注意的
3:一般情况下,sleep函数可以放心在多线程中使用,如果实在不放心,可以用定时器替换
会。
正常情况下php以最快速度执行完脚本,将执行结果传给浏览器。你要考虑有很多用户访问你网站的情况,因为执行脚本的时候被sleep了,导致每个用户浏览网页的时候php都需要更长的时间去执行你的脚本,而脚本执行完毕之前内存是一直被php引擎占用的。所以当访问用户多的时候,就会导致有很多php引擎的实例同时运行,占用很多内存,但是这些php引擎却受到脚本的指使而在那边sleep(说得粗俗一点就是占着茅坑不拉屎)(正常情况下是执行完以后内存就释放了)。就好像八行道的大马路,如果只有一个司机车子停在中间然后睡觉,其他道路暂时还能通;但是如果有八辆车的司机并排停在路中间睡觉,这马路就不要想畅通了
cpu的话……好像影响不大,最多就是 *** 作系统在调度进程线程的时候要多检查几个而已,没感觉。
计算机进入睡眠状态内部程序不会继续运行。
计算机睡眠(Sleep)是计算机由工作状态转为等待状态的一种新的节能模式。其开启方式是在电脑系统的开始菜单中点击电源按钮右侧的下拉箭头选择“睡眠”按钮。开启睡眠状态时,系统的所有工作都会保存在硬盘下的一个系统文件,同时关闭除了内存外所有设备的供电。
睡眠是待机+休眠的方式,不光机器仅提供维持内存数据不丢失所需要的工作(像待机一样),还把当前状态存入硬盘(像休眠一样)。 如果在睡眠过程中不断电,那么,就不从硬盘读数据了,用内存数据直接恢复机器状态,象从待机中恢复一样。如果断了电,那就从硬盘读入数据,象休眠一样。
以上就是关于c语言sleep的用法全部的内容,包括:c语言sleep的用法、在多线程环境中使用Sleep函数会有什么有关问题、php中sleep()函数会不会大量销号系统内存或者CPU等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)