sleep()和usleep()的使用和区别

在iOS中  如果 在主线程中用这2个 都会 对 主线程 造成 阻塞

具体区别 如下   Linux 中的 代码 为例

函数名: sleep
头文件: #include <windows.h> // 在VC中使用带上头文件
        #include <unistd.h>  // 在gcc编译器中,使用的头文件因gcc版本的不同而不同
功  能: 执行挂起指定的秒数
语  法: unsigned sleep(unsigned seconds);

示例:
#include <windows.h>
#include<stdio.h>
int main()
{
  int a;
  a=1;
  printf("hello");
  sleep(a);        /* VC 使用Sleep*/
  printf("world"); 
  return 0;
}

函数名: usleep
头文件: #include <unistd.h>
功  能: usleep功能把进程挂起一段时间, 单位是微秒(百万分之一秒);
语  法: void usleep(int micro_seconds);
返回值: 无
内容说明:本函数可暂时使程序停止执行。参数 micro_seconds 为要暂停的微秒数(us)。
注 意:
这个函数不能工作在windows 操作系统中。用在Linux的测试环境下面。
参 见:usleep() 与sleep()类似,用于延迟挂起进程。进程被挂起放到reday queue。
是一般情况下,延迟时间数量级是秒的时候,尽可能使用sleep()函数。
如果延迟时间为几十毫秒(1ms = 1000us),或者更小,尽可能使用usleep()函数。这样才能最佳的利用CPU时间

时钟换算:
微秒,时间单位,符号us(英语:microsecond ).
1微秒等于百万分之一秒(10的负6 次方秒)
0.000 001 微秒 = 1皮秒
0.001 微秒 = 1纳秒
1,000 微秒 = 1毫秒
1,000,000 微秒 = 1秒
1s = 1000ms
1ms = 1000μs
1μs = 1000ns
1ns = 1000ps
1秒(s) = 1000 毫秒(ms) = 1,000,000 微秒(μs) = 1,000,000,000 纳秒(ns) = 1,000,000,000,000 皮秒(ps)

时间: 2024-12-15 07:13:45

sleep()和usleep()的使用和区别的相关文章

linux的sleep()和usleep()的使用和区别

linux的sleep()和usleep()的使用和区别 关键词: linux sleep() usleep() sleep函数 usleep功能把进程挂起一段时间, 单位是微秒(百万分之一秒): 头文件: unistd.h 语法: void usleep(int micro_seconds); 返回值: 无 内容说明:本函数可暂时使程序停止执行.参数 micro_seconds 为要暂停的微秒数(us). 注意:这个函数不能在windows操作系统下运行 Sleep(unisgned long

linux下的sleep()和usleep()的使用和区别

函数名: sleep头文件: #include<windows.h> // 在VC中使用带上头文件              #include<unistd.h>    // 在gcc编译器中,使用的头文件因gcc版本的不同而不同功  能: 执行挂起指定的秒数语  法: unsigned sleep(unsigned seconds); #include<stdio.h> #include<stdlib.h> #include<time.h> i

PHP 暂停函数 sleep() 与 usleep() 的区别

在PHP中暂停代码执行一定时间,有两个函数可以实现,一个是sleep(),另一个是usleep(),它们参数都是一个整数值.sleep()是暂停多少秒,usleep()是暂停多少微秒. 注意:usleep()单位是微秒,1秒 = 1000毫秒 ,1毫秒 = 1000微秒,即1微秒等于百万分之一秒. 如果程序中要使用要暂停多少毫秒,只能使用usleep(),务必注意参数的单位,假设暂停 50毫秒,应该使用 usleep(50000),而不是usleep(50). 另外,这个暂停的时候不可能是百分百

PHP API中,MYSQL与MYSQLI的持久连接区别

留存再测试验证 PHP API中,MYSQL与MYSQLI的持久连接区... 很久很久以前,我也是因为工作上的bug,研究了php mysql client的连接驱动mysqlnd 与libmysql之间的区别php与mysql通讯那点事,这次又遇到一件跟他们有联系的事情,mysqli与mysql持久链接的区别.写出这篇文章,用了好一个多月,其一是我太懒了,其二是工作也比较忙.最近才能腾出时间,来做这些事情.每次做总结,都要认真阅读源码,理解含义,测试验证,来确认这些细节.而每一个步骤都需要花费

sleep(0)、usleep(0)与sched_yield() 调度

结论: 如果你是为了耗掉一个机器周期 ,那直接asm ("nop") , 如果是为了让权,建议把 所有使用 usleep(0)  换成 sched_yield() ; 最近发现很多hpc 领域的MPI程序中在用usleep(0) ,比较差异. 后来问了之前做hpc 的同事 得到的答复是 一般用usleep(0) 的主要目的应该是: CPU交出当前线程的执行权,让CPU去执行其他线程.也就是放弃当前线程的时间片,转而执行其他线程 我感觉很诧异. Usleep(0) 来做这个事情 是POS

Nginx 反代参数:$X-Real-Ip和$X-Forwarded-For的区别

## \$X-Real-Ip和$X-Forwarded-For的区别 标签(空格分隔): nignx 负载均衡 client-ip --- ####1.如果只有一层代理,这两个头的值就是一样的####2.多层代理> * X-Forwarded-For:  header包含这样一行        `*X-Forwarded-For: 1.1.1.1, 2.2.2.2, 3.3.3.3*`> * X-Real-Ip:没有相关标准,上面的例子,如果配置了X-Read-IP,可能会有两种情况`// 最

C#中Convert和parse的区别

Convert.ToInt32()与int.Parse()的区别(1)这两个方法的最大不同是它们对null值的处理方法: Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会产生异常. 没搞清楚Convert.ToInt32和int.Parse()的细细微区别时千万别乱用,否则可能会产生无法预料的结果,举例来说:假如从url中取一个参数page的值,我们知道这个值是一个int,所以即可以用Convert.ToInt32(Request.Que

python判断字符串,str函数isdigit、isdecimal、isnumeric的区别

s为字符串s.isalnum() 所有字符都是数字或者字母s.isalpha() 所有字符都是字母s.isdigit() 所有字符都是数字s.islower() 所有字符都是小写s.isupper() 所有字符都是大写s.istitle() 所有单词都是首字母大写,像标题s.isspace() 所有字符都是空白字符.\t.\n.\r 判断是整数还是浮点数a=123b=123.123 >>>isinstance(a,int)True>>>isinstance(b,floa

java web 过滤器跟拦截器的区别和使用

1.首先要明确什么是拦截器.什么是过滤器 1.1 什么是拦截器: 拦截器,在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作.拦截是AOP的一种实现策略. 在Webwork的中文文档的解释为--拦截器是动态拦截Action调用的对象.它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行.同时也是提供了一种可以提取action中可重用的部分的方式.