烫手的热山药 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日