this_thread::sleep_until,用于将线程休眠直到某个时刻:
#include <iostream>
#include <chrono>
#include <thread>
auto now() { return std::chrono::steady_clock::now(); }
auto awake_time() {
using std::chrono::operator""ms;
return now() + 2000ms;
}
int main()
{
std::cout << "Hello, waiter...\n" << std::flush;
const auto start {now()}; //获取当前时间
std::this_thread::sleep_until(awake_time()); //当前线程睡眠直到当前时刻的2000ms后
std::chrono::duration<double, std::milli> elapsed {now() - start}; //线程唤醒,计算时差
std::cout << "Waited " << elapsed.count() << " ms\n";
return 0;
}
运行程序输出:
Hello, waiter...
Waited 1999.28 ms
this_thread::sleep_for,用于将当前线程休眠多长时间: