命名空间
变体
操作

std::this_thread::sleep_for

来自 cppreference.cn
< 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)
Hazard 指针
原子类型
(C++11)
(C++20)
原子类型的初始化
(C++11)(C++20 中已弃用)
(C++11)(C++20 中已弃用)
内存顺序
(C++11)(C++26 中已弃用)
原子操作的自由函数
原子标志的自由函数
 
定义于头文件 <thread>
template< class Rep, class Period >
void sleep_for( const std::chrono::duration<Rep, Period>& sleep_duration );
(C++11 起)

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

由于调度或资源竞争延迟,此函数可能会阻塞时间长于 sleep_duration

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

目录

[edit] 参数

sleep_duration - 睡眠时长

[edit] 返回值

(无)

[edit] 异常

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

[edit] 示例

#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

[edit] 参见

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