烫手的热山药 2024-01-25 11:03 采纳率: 77.8%
浏览 3

(标签-linux)

linux下,系统时钟频率为10ms,要求使用c++实现不受系统时钟频率影响的延时器,要求不能使用系统延时函数,也不能使用开源第三方库,延时最小单位为1毫秒。

  • 写回答

2条回答 默认 最新

  • 专家-郭老师 Java领域新星创作者 2024-01-25 11:20
    关注

    在 C++11 版本及以上,你可以考虑使用标准库中的

    <chrono><thread> 
    

    来试试,尽管此方法可能无法做到完全不受系统时钟的影响(有时会有微小的时间偏差),但在许多情况下应该可以满足需求。

    下面是一个例子:

    
    #include <chrono>
    #include <thread>
    
    void delay(unsigned long ms)
    {
        std::this_thread::sleep_for(std::chrono::milliseconds(ms));
    }
    
    

    调用 delay(1000) 就会让当前线程等待 1000 毫秒。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 1月25日

悬赏问题

  • ¥15 CBF预处理数据归一化的时候报错了如下图
  • ¥15 qt 转 msvc 后 Opencv 始终打不开视频!
  • ¥15 yolo v5中labelimg的作用
  • ¥15 国赛c题2021,没有理解这一串代码的意思,这样报错该怎么解决(语言-matlab)
  • ¥15 一、执行完中断程序后如何继续运行,二、中断结束后如何跳过中断触发前的点位(LOW点不要继续运行,可以运行UP点)(关键词-程序运行)
  • ¥15 if为什么跳过if 直接执行else 中文
  • ¥200 解决登录微信老版本限制封号问题
  • ¥15 mysql中时间处理问题
  • ¥20 讲解此音频放大电路原理及关键部分
  • ¥15 rtsp 转 m3u8 执行后卡在Decoding VUI