名稱空間
變體
操作

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 中已棄用)
記憶體排序
(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 更長的時間。

標準建議使用穩定時鐘來測量持續時間。如果實現使用系統時鐘,則等待時間也可能對時鐘調整敏感。

目錄

[編輯] 引數

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

[編輯] 參閱

停止當前執行緒的執行直到指定的時間點
(函式) [編輯]