c++ this_thread::sleep_until
时间: 2024-01-14 09:09:35 浏览: 176
`this_thread::sleep_until` 是 C++11 标准库中的一个函数,可以让当前线程睡眠直到指定的时间点。其函数原型为:
```cpp
template< class Clock, class Duration >
void sleep_until( const std::chrono::time_point<Clock,Duration>& sleep_time );
```
其中 `sleep_time` 参数表示需要等待的时间点,可以使用 `std::chrono::system_clock::now()` 获取当前时间后再加上一个时间段得到。
使用示例:
```cpp
#include <iostream>
#include <thread>
#include <chrono>
int main()
{
auto now = std::chrono::system_clock::now();
auto wakeup_time = now + std::chrono::seconds(5);
std::cout << "Sleeping until " << std::chrono::system_clock::to_time_t(wakeup_time) << "..." << std::endl;
std::this_thread::sleep_until(wakeup_time);
std::cout << "Woke up at " << std::chrono::system_clock::to_time_t(std::chrono::system_clock::now()) << std::endl;
return 0;
}
```
执行上述代码会输出 "Sleeping until [指定时间]...",然后等待直到指定的时间点后输出 "Woke up at [实际醒来的时间]"。
阅读全文