你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

windows下std::this_thread::sleep_for精度问题

2021/12/29 12:10:59

结论

windows平台下,精度只能达到毫秒级,不能实现微秒级以下

测试代码

#include <iostream>
#include <thread>
#include <chrono>

using namespace std::chrono;

int main()
{
    int testCnt = 10;
    auto avg = 0.0;
    while (testCnt-- >0) {
        auto t1 = steady_clock::now();
        for (auto i = 0; i < 10; ++i)
            std::this_thread::sleep_for(/*milliseconds(1)*/microseconds(100));
        auto t2 = steady_clock::now();
        auto diffMs = duration_cast<microseconds>(t2 - t1).count()/1000.0;
        avg += diffMs;
        std::cout << "delayTime:" << diffMs << " ms"<<std::endl;
    }
    std::cout << "\navg time:" << avg / 10 << " ms\n" << std::endl;
    system("pause");
}

实测图片

在这里插入图片描述
在这里插入图片描述