命名空间
变体
操作

std::this_thread::sleep_for

来自 cppreference.com
< cpp‎ | thread
 
 
并发支持库
线程
(C++11)
(C++20)
this_thread 命名空间
(C++11)
(C++11)
sleep_for
(C++11)
协作取消
互斥
(C++11)
通用锁管理
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
条件变量
(C++11)
信号量
闩锁和屏障
(C++20)
(C++20)
期货
(C++11)
(C++11)
(C++11)
(C++11)
安全回收
(C++26)
危险指针
原子类型
(C++11)
(C++20)
原子类型的初始化
(C++11)(C++20 中已弃用)
(C++11)(C++20 中已弃用)
内存排序
原子操作的自由函数
原子标志的自由函数
 
在头文件中定义 <thread>
template< class Rep, class Period >
void sleep_for( const std::chrono::duration<Rep, Period>& sleep_duration );
(自 C++11 起)

阻塞当前线程的执行至少指定的时间 sleep_duration.

由于调度或资源竞争延迟,此函数的阻塞时间可能超过 sleep_duration.

标准建议使用稳态时钟来衡量持续时间。如果实现使用系统时钟,则等待时间也可能对时钟调整敏感。

内容

[编辑] 参数

sleep_duration - 要休眠的时间持续时间

[编辑] 返回值

(无)

[编辑] 异常

在执行期间 clocktime_pointduration 抛出的任何异常(标准库提供的时钟、时间点和持续时间永远不会抛出异常)。

[编辑] 示例

#include <chrono>
#include <iostream>
#include <thread>
 
int main()
{
    using namespace std::chrono_literals;
 
    std::cout << "Hello waiter\n" << std::flush;
 
    const auto start = std::chrono::high_resolution_clock::now();
    std::this_thread::sleep_for(2000ms);
    const auto end = std::chrono::high_resolution_clock::now();
    const std::chrono::duration<double, std::milli> elapsed = end - start;
 
    std::cout << "Waited " << elapsed << '\n';
}

可能的输出

Hello waiter
Waited 2000.13 ms

[编辑] 参见

停止当前线程的执行,直到指定的时点
(函数) [编辑]