std::this_thread::sleep_for
From cppreference.com
C++
Feature test macros (C++20)
Concepts library (C++20)
Metaprogramming library (C++11)
Ranges library (C++20)
Filesystem library (C++17)
Concurrency support library (C++11)
Execution control library (C++26)
Concurrency support library
(C++11)
(C++20)
sleep_for
(C++11)
(C++11)
(C++20)
(C++26)
(C++26)
(C++20)
(C++26)
(C++20)
(C++26)
(C++26)
(C++26)
(C++26)
(C++26)
(C++26)
(C++11)
(C++11)
(C++17)
(C++11)
(C++14)
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(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++11)
(C++26)
(C++26)
(C++26)
(C++11)
(C++20)
(C++11)
(C++11)(deprecated in C++20)
(C++11)(deprecated in C++20)
(C++11)
(C++11)
(C++11)(deprecated in C++26)
(C++11)
(C++11)
(C++11)(C++11)
(C++11)(C++11)
(C++11)(C++11)
(C++11)(C++11)
(C++11)(C++11)
(C++11)(C++11)
(C++11)(C++11)
(C++11)(C++11)
(C++26)(C++26)
(C++26)(C++26)
(C++11)
(C++20)(C++20)
(C++20)
(C++20)
(C++11)(C++11)
(C++11)(C++11)
(C++20)(C++20)
(C++20)(C++20)
(C++20)
(C++20)
Defined in header
<thread>
template< class Rep, class Period >
void sleep_for( const std::chrono::duration <Rep, Period>& sleep_duration );
(since C++11)
void sleep_for( const std::chrono::duration <Rep, Period>& sleep_duration );
Blocks the execution of the current thread for at least the specified sleep_duration.
This function may block for longer than sleep_duration due to scheduling or resource contention delays.
The standard recommends that a steady clock is used to measure the duration. If an implementation uses a system clock instead, the wait time may also be sensitive to clock adjustments.
[edit] Parameters
sleep_duration
-
time duration to sleep
[edit] Return value
(none)
[edit] Exceptions
Any exception thrown by clock
, time_point
, or duration
during the execution (clocks, time points, and durations provided by the standard library never throw).
[edit] Example
Run this code
#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'; }
Possible output:
Hello waiter Waited 2000.13 ms