sleep()和usleep()的使⽤和区别
sleep想必都知道,作⽤是让进程挂起⼀段时间,参数是秒。但是很羞愧,对于usleep,我居然想当然以为是解除进城挂起,作为对⾃⼰的的惩罚,特意写下这篇⽂章。
在iOS中 如果 在主线程中⽤这2个 都会 对 主线程 造成 阻塞
函数名:** sleep**
头⽂件: #include <windows.h> // 在VC中使⽤带上头⽂件,或#include <unistd.h> // 在gcc编译器中,使⽤的头⽂件因gcc版本的不同⽽不同
功 能: 执⾏挂起指定的秒数
语 法: unsigned sleep(unsigned seconds);
函数名:** usleep**
头⽂件: #include <unistd.h>
功 能: usleep功能把进程挂起⼀段时间,单位是微秒(百万分之⼀秒);
语 法: void usleep(int micro_seconds);
返回值: ⽆
内容说明:本函数可暂时使程序停⽌执⾏。参数 micro_seconds 为要暂停的微秒数(us)。
注 意:linux下的sleep函数
这个函数不能⼯作在windows 操作系统中。⽤在Linux的测试环境下⾯。参见:usleep() 与sleep()类似,⽤于延迟挂起进程。进程被挂起放到reday queue。是⼀般情况下,延迟时间数量级是秒的时候,尽可能使⽤sleep()函数。如果延迟时间为⼏⼗毫秒(1ms = 1000us),或者更⼩,尽可能使⽤usleep()函数。这样才能最佳的利⽤CPU时间
从上⾯引⽤⽹页的知识能得出关于usleep的⼏点:
1. 功能与sleep类似,只是传⼊的参数单位是微妙
2. 若想最佳利⽤cpu,在更⼩的时间情况下,选择⽤usleep
3. sleep传⼊的参数是整形,所以不能传了⼩数
4. usleep不能⼯作在windows上,只能在linux下(深深的体会到API对平台系统的严格要求,转念想想跨平台的语⾔是多么强⼤,多么爽啊,⽐
如java)
usleep使⽤场景
MBProgressHUD demo中Moding switching模式中就⽤到了。代码如下:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论