#include<iostream>
#include<chrono>
#include<thread>
#include<string>
using namespace std;
using namespace std::chrono;
//using namespace cv;
int main()
{
auto t0 = std::chrono::system_clock::now();
std::this_thread::sleep_for(std::chrono::milliseconds(5000));
auto t1 = std::chrono::system_clock::now();
double sleepTimeAct = std::chrono::duration<double, micro>(t1 - t0).count();
string str = to_string(sleepTimeAct);
cout << "sleepTimeAct——sleep_for:" << str << endl;
auto t2 = std::chrono::high_resolution_clock::now();
while ((std::chrono::high_resolution_clock::now() - t2).count() / 1e9 < 5);
auto t3 = std::chrono::high_resolution_clock::now();
double sleepTimeAct1 = std::chrono::duration<double, micro>(t3 - t2).count();
string str1 = to_string(sleepTimeAct1);
cout << "sleepTimeAct——while :" << str1 << endl;
// sleep_for 休眠时线程优先级低,可能会被其他线程调用,时间不准
// while 循环 一直执行占用本线程 时间准
}
运行结果