函数
<thread>

std::this_thread::sleep_for

template <class Rep, class Period>  void sleep_for (const chrono::duration<Rep,Period>& rel_time);
按时间跨度休眠
阻塞调用线程的执行,持续时间由 rel_time 指定。

当前线程的执行会暂停,直到至少 rel_time 时间过去。其他线程将继续执行。

参数

rel_time
调用线程恢复执行之前要经过的时间跨度。
请注意,多线程管理操作可能会导致超过此时间的延迟。
duration 是一个表示特定相对时间的对象。

返回值



示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// this_thread::sleep_for example
#include <iostream>       // std::cout, std::endl
#include <thread>         // std::this_thread::sleep_for
#include <chrono>         // std::chrono::seconds
 
int main() 
{
  std::cout << "countdown:\n";
  for (int i=10; i>0; --i) {
    std::cout << i << std::endl;
    std::this_thread::sleep_for (std::chrono::seconds(1));
  }
  std::cout << "Lift off!\n";

  return 0;
}

输出(10秒后)
countdown:
10
9
8
7
6
5
4
3
2
1
Lift off!


异常安全

如果 rel_time 的类型从不抛出异常(例如,头文件 <chrono> 中的 duration 实例化),则此函数也从不抛出异常(无异常保证)。

另见