源代码:

#include <sys/time.h>
#include <stdio.h>
#include <time.h>

inline double
now()
{
    timeval tv;
    gettimeofday(&tv, 0);
    double s = (tv.tv_sec);
    s += (1e-6 * tv.tv_usec);
    return s;
}

inline void
wait(double sec)
{
    double start_time = now();

const double SLEEP_MIN_TIME = 0.005;        
    
    //当等待时间>SLEEP_MIN_TIME时,调用nanosleep() API,避免过多占用内存。
    //nanosleep() API的精度约为200us。
    
    if(sec > SLEEP_MIN_TIME)
    {
        double sleep_time = sec-SLEEP_MIN_TIME;
        struct timespec sleep_;
        int seconds = static_cast<int>(sleep_time);
        sleep_.tv_sec = seconds;
        sleep_.tv_nsec = static_cast<int>((sleep_time-seconds)*1e9);
        nanosleep(&sleep_,NULL);            
    }

//开始循环取时,判断时间是否到了。
    for(;;)
    {
        if((now() - start_time) > sec) break;
    }
}

测试,在2.6内核,迅驰1.6G环境下,精确度大概能到0.00001 s,即10us。

linux下的精确wait相关推荐

  1. linux下find命令的使用和总结

    背景:find命令十分的好用,特别是在查找文件的时候,这个时候需要和文件通配符一起使用. 1 前言 我们为什么要学会使用find命令? 每一种操作系统都有成千上万的文件组成,对于linux这样&quo ...

  2. Linux下进程通信知识点学习笔记(一)

    4种主要事件导致进程创建: 系统的初始化: 执行了正在运行的进程所调用的进程创建系统调用: 用户请求创建一个进程: 一个批处理作业的初始化: 进程的终止: 正常退出: 出错退: 严重错误: 被其他进程 ...

  3. linux 中如何将文件粘贴到usr下的lib内,学会在Linux下GCC生成和使用静态库和动态库...

    一.基本概念1.1什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同(主 ...

  4. linux命令grep如何使用,Linux下如何使用grep搜索文本

    Linux下如何使用grep搜索文本 2018-11-30 一.什么是grep grep是一种文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来. grep是几个单词的缩写,g(globa ...

  5. Linux下防火墙iptables用法规则详及其防火墙配置

    原博主文章更美丽: http://www.cnblogs.com/yi-meng/p/3213925.html iptables规则 规则--顾名思义就是规矩和原则,和现实生活中的事情是一样的,国有国 ...

  6. Linux下命令行(二)之文本处理基础

    系统管理员工作过程中,总会遇到小的.琐碎的.各种各样的文本处理问题,如果对文本处理不熟,每一次都要查很多的资料去解决这样的小问题,那么系统管理员的工作效率从何而来.因此如何快速写出简短有效的针对特定问 ...

  7. linux下find(文件查找)命令的用法总结

    前言:我们为什么要学会使用find命令? 每一种操作系统都有成千上万的文件组成,对于linux这样"一切皆文件"的操作系统来说更不例外,大家应该都能很轻松使用windows下的文件 ...

  8. Linux下不同服务器间数据传输

    因为工作原因,需要经常在不同的服务器见进行文件传输,特别是大文件的传输,因此对linux下不同服务器间数据传输命令和工具进行了研究和总结.主要是rcp,scp,rsync,ftp,sftp,lftp, ...

  9. 通过/proc/sys/net/ipv4/优化Linux下网络性能

    通过/proc/sys/net/ipv4/优化Linux下网络性能 /proc/sys/net/ipv4/优化 1)      /proc/sys/net/ipv4/ip_forward 该文件表示是 ...

最新文章

  1. d06调试详细说明_D06电脑板调试软件使用说明_20100706
  2. Flying框架思路与感想
  3. java换行符分隔字符串_Java 实例 – 字符串分隔(StringTokenizer) | 菜鸟教程
  4. 电脑遇到脱机状态怎么解除?
  5. ob_start()函数
  6. 全局唯一序号生成方案
  7. 第2章 神经网络的数学基础
  8. 股票历史数据下载-A股所有股票的历史数据下载
  9. EK算法(网络流,最大流)
  10. 网站速度优化4个实用办法
  11. 计算机应用与基础app,手机APP支持下《计算机应用基础》课程探究性学习活动设计与实验研究...
  12. 福建农林大学计算机课程表,福建农林大学课程表.doc
  13. Restricted RPS
  14. python微信抢票脚本_春节到了 教你使用python来抢票回家
  15. redit mysql_样式
  16. vim配置http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html
  17. IOS逆向笔记之HOOK实现(非越狱)
  18. 给div加滚动条 div显示滚动条设置代码
  19. UT-Exynos4412 三星ARM四核旗舰开发平台android4.0体验-17板载按键调试
  20. 【环境部署系列 06】Ascend 310(推理)X86服务器 Ubuntu系统环境部署

热门文章

  1. Linux 定位网络不通问题
  2. 磨刀不误砍柴工-git新手教程
  3. Linux目录结构介绍
  4. POJ 1185 炮兵阵地(状压DP)题解
  5. POJ(1195)(单点修改,区间查询)(二维)
  6. AngularJS分层开发
  7. 20145226夏艺华 《Java程序设计》第3周学习总结
  8. 根据DLL创建LIB输出库的方法
  9. 2021高考成绩查询省排名,重磅!2021全国各地高考预测分数线出炉,这样估分可以估算全省排名...
  10. 算法设计与分析python_Python算法设计与分析