1.不使用sleep,循环10000次

/* 1.c */#include <sys/time.h>
#include <stdio.h>void main(void)
{struct timeval start, end;int i;float time_use=0;gettimeofday(&start, NULL);for(i=0; i<10000; i++){;}gettimeofday(&end, NULL);time_use=(end.tv_sec-start.tv_sec)*1000000+(end.tv_usec-start.tv_usec);//微秒printf("time_use is %.10f\n",time_use);
}

运行结果:

time_use is 51.0000000000

2.使用sleep(0),循环10000次

/* 0.c */#include <sys/time.h>
#include <stdio.h>void main(void)
{struct timeval start, end;int i;float time_use=0;gettimeofday(&start, NULL);for(i=0; i<10000; i++){sleep(0);}gettimeofday(&end, NULL);time_use=(end.tv_sec-start.tv_sec)*1000000+(end.tv_usec-start.tv_usec);//微秒printf("time_use is %.10f\n",time_use);
}

运行结果:

time_use is 83.0000000000

3.使用usleep(0),循环10000次

/* 4.c */#include <sys/time.h>
#include <stdio.h>void main(void)
{struct timeval start, end;int i;float time_use=0;gettimeofday(&start, NULL);for(i=0; i<10000; i++){usleep(0);}gettimeofday(&end, NULL);time_use=(end.tv_sec-start.tv_sec)*1000000+(end.tv_usec-start.tv_usec);//微秒printf("time_use is %.10f\n",time_use);
}

运行结果:

time_use is 541044.0000000000

4.使用usleep(1),循环10000次

/* 2.c */#include <sys/time.h>
#include <stdio.h>void main(void)
{struct timeval start, end;int i;float time_use=0;gettimeofday(&start, NULL);for(i=0; i<10000; i++){usleep(1);}gettimeofday(&end, NULL);time_use=(end.tv_sec-start.tv_sec)*1000000+(end.tv_usec-start.tv_usec);//微秒printf("time_use is %.10f\n",time_use);
}

运行结果:

time_use is 553434.0000000000

5.使用usleep(2),循环10000次

/* 9.c */#include <sys/time.h>
#include <stdio.h>void main(void)
{struct timeval start, end;int i;float time_use=0;gettimeofday(&start, NULL);for(i=0; i<10000; i++){usleep(2);}gettimeofday(&end, NULL);time_use=(end.tv_sec-start.tv_sec)*1000000+(end.tv_usec-start.tv_usec);//微秒printf("time_use is %.10f\n",time_use);
}

运行结果:

time_use is 560403.0000000000

6.使用nanosleep,休眠0纳秒,循环10000次

/* 10.c */#include <sys/time.h>
#include <stdio.h>void main(void)
{struct timeval start, end;int i;float time_use=0;struct timespec ts;ts.tv_sec = 0;ts.tv_nsec = 0;gettimeofday(&start, NULL);for(i=0; i<10000; i++){nanosleep(&ts,NULL);}gettimeofday(&end, NULL);time_use=(end.tv_sec-start.tv_sec)*1000000+(end.tv_usec-start.tv_usec);//微秒printf("time_use is %.10f\n",time_use);
}

运行结果:

time_use is 542908.0000000000

7.使用nanosleep,休眠1纳秒,循环10000次

/* 3.c */#include <sys/time.h>
#include <stdio.h>void main(void)
{struct timeval start, end;int i;float time_use=0;struct timespec ts;ts.tv_sec = 0;ts.tv_nsec = 1;gettimeofday(&start, NULL);for(i=0; i<10000; i++){nanosleep(&ts,NULL);}gettimeofday(&end, NULL);time_use=(end.tv_sec-start.tv_sec)*1000000+(end.tv_usec-start.tv_usec);//微秒printf("time_use is %.10f\n",time_use);
}

运行结果:

time_use is 548566.0000000000

8.使用nanosleep,休眠1000纳秒,循环10000次

/* 7.c */#include <sys/time.h>
#include <stdio.h>void main(void)
{struct timeval start, end;int i;float time_use=0;struct timespec ts;ts.tv_sec = 0;ts.tv_nsec = 1000;gettimeofday(&start, NULL);for(i=0; i<10000; i++){nanosleep(&ts,NULL);}gettimeofday(&end, NULL);time_use=(end.tv_sec-start.tv_sec)*1000000+(end.tv_usec-start.tv_usec);//微秒printf("time_use is %.10f\n",time_use);
}

运行结果:

time_use is 551212.0000000000

9.使用nanosleep,休眠10000纳秒,循环10000次

/* 8.c */#include <sys/time.h>
#include <stdio.h>void main(void)
{struct timeval start, end;int i;float time_use=0;struct timespec ts;ts.tv_sec = 0;ts.tv_nsec = 10000;gettimeofday(&start, NULL);for(i=0; i<10000; i++){nanosleep(&ts,NULL);}gettimeofday(&end, NULL);time_use=(end.tv_sec-start.tv_sec)*1000000+(end.tv_usec-start.tv_usec);//微秒printf("time_use is %.10f\n",time_use);
}

运行结果:

time_use is 644741.0000000000

10.使用usleep(10),循环10000次

/* 5.c */#include <sys/time.h>
#include <stdio.h>void main(void)
{struct timeval start, end;int i;float time_use=0;gettimeofday(&start, NULL);for(i=0; i<10000; i++){usleep(10);}gettimeofday(&end, NULL);time_use=(end.tv_sec-start.tv_sec)*1000000+(end.tv_usec-start.tv_usec);//微秒printf("time_use is %.10f\n",time_use);
}

运行结果:

time_use is 641488.0000000000

11.每循环1000次,使用1次usleep(1),共循环10000次

/* 11.c */#include <sys/time.h>
#include <stdio.h>void main(void)
{struct timeval start, end;int i,j;float time_use=0;gettimeofday(&start, NULL);for(i=0,j=0; i<10000; i++,j++){if(0 == j%1000){usleep(1);}}gettimeofday(&end, NULL);time_use=(end.tv_sec-start.tv_sec)*1000000+(end.tv_usec-start.tv_usec);//微秒printf("time_use is %.10f\n",time_use);
}

运行结果:

time_use is 634.0000000000

linux c语言sleep的时间实验相关推荐

  1. linux c语言 线程sleep有关测试总结

    1.线程中不使用sleep,不会造成线程切换问题. 2.线程中使用sleep,会使cpu的占有率降低.让其他线程或进程,运行得更有效. 3.使用sleep(0)和不使用sleep,效果差别不大,都不会 ...

  2. c语言代码大全表解释_正点原子Linux第十章C语言版LED灯实验

    1)资料下载:点击资料即可下载 2)对正点原子Linux感兴趣的同学可以加群讨论:935446741 3)关注正点原子公众号,获取最新资料更新 第十章C语言版LED灯实验 第八章我们讲解了如何用汇编语 ...

  3. linux c语言修改文件的时间属性,请教一个关于用标准C语言修改文件创建时间、修改时间和访问时间的问题。...

    请教一个关于用标准C语言修改文件创建时间.修改时间和访问时间的问题. 标准C里面有没有这种方法呢?我需要在Unix下运行,具体的是Solaris 9下,把某个目录下的所有文件的这三个时间属性都改成某年 ...

  4. SIM71004G模块使用Linux C语言实现打电话发短信

    为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长. 一.实验目的: SIM71004G模块使用Linux C语言实现打电话发短信. 二 ...

  5. 《全面掌握Linux C语言嵌入式系统移植教程》学习笔记(Liunx速查简明)

    全面掌握Linux C语言嵌入式系统移植教程学习笔记(Liunx速查简明) 笔记前言: P3: shell命令简明 P4: vi /vim编辑器入门 P5:vi /vim编辑器扩展 P8: gcc编译 ...

  6. Linux之Ansible入门用法(实验解析)

    Linux之Ansible入门用法(实验解析) 实验前提: 三台CentOS7和一台CentOS6,其中一台CentOS7当作Ansible堡垒机,其余三台主机当作被控主机.四台主机均为最小化安装,全 ...

  7. c语言消字母游戏实验报告,C语言编程实验报告格式示例

    暨南大学数学系数学系,2011年语言课程设计课程实验项目目录学生姓名: 学生ID: 实验项目名称计划时间和课程每组人数实验属性开放要求要求摘要实验1熟悉使用WinTC / VC验证实验2数据类型,运算 ...

  8. linux系统下的程序开发报告册,linux系统及应用应用开发实验报告册

    (5)利用man显示date,echo等命令的手册页: (6)显示系统中的进程信息. 三 .实验软件 VMWare Workstation 5.0: Red hat linux 9.0: 四.实验主要 ...

  9. linux C语言多线程库pthread中条件变量的正确用法逐步详解

    linux C语言多线程库pthread中条件变量的正确用法: 了解pthread常用多线程API和pthread互斥锁,但是对条件变量完全不知道或者不完全了解的人群. 关于条件变量的典型应用,可以参 ...

最新文章

  1. C 关于使用异或运算操作概述
  2. formRef=React.createRef() this.formRef.current为null
  3. Java异常学习心得
  4. C++文件流操作备忘录
  5. 关于Matlab编程的思考(待续)
  6. 函数中的apply,call入门介绍
  7. 外设驱动库开发笔记21:BME680环境传感器驱动
  8. php if语句的缩写 实例
  9. python安装库的方法linalg_Python linalg.gmres方法代码示例
  10. mysql中的where和having子句的区别
  11. SOLARIS UFS文件系统解析
  12. 【转】随机函数 rand() srand() 以及seed的原理
  13. 世界杯正在成为鸡肋!球迷越来越像傻瓜!
  14. 清明去哪玩儿? 可视化工具帮你锁定旅游TOP10!
  15. CS5460基本读写程序(无bug版本)
  16. DRM 驱动程序开发(VKMS)
  17. 分式化简结果要求_中考分式化简求值题题型归纳
  18. Mybatis面试合集
  19. Derek Wilson:三重缓冲,为什么我们爱它
  20. ios代码大全】代码例子区全区搜索索引

热门文章

  1. R循环有两个_R语言for循环
  2. 大型 Web 应用插件化架构探索
  3. 电机驱动器为什么能广泛运用
  4. 【FFNN负荷预测】基于人工神经网络的空压机负荷预测(Matlab代码实现)
  5. 美图秀秀让你的照片散发出回忆般小清新的韵味
  6. Java怎么自定义类
  7. python需要什么英语基础_0基础学python有多难
  8. 如何隐藏QQ图标,如何隐藏QQ所有图标的技巧
  9. adaptec 2610sa raid卡安装linux系统
  10. 群晖搭建个人网站,内网穿透实现公网访问 3/3