std::this_thread::sleep_for - std::this_thread::sleep_for
Defined in header <thread>
template< class Rep, class Period >
void sleep_for( const std::chrono::duration<Rep, Period>& (since
C++11)
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.
sleep_duration - time duration to sleep.
Any exception thrown by clock, time_point, or duration during the
execution (clocks,
time points, and durations provided by the standard library never throw).
// Run this code
#include <iostream>
#include <chrono>
#include <thread>
int main()
{
using namespace std::chrono_literals;
std::cout << "Hello waiter\n" << std::flush;
auto start = std::chrono::high_resolution_clock::now();
std::this_thread::sleep_for(2000ms);
auto end = std::chrono::high_resolution_clock::now();
std::chrono::duration<double, std::milli> elapsed = end-start;
std::cout << "Waited " << elapsed.count() <<
" ms\n";
}
Hello waiter
Waited 2000.12 ms
sleep_until stops the execution of the current thread until a
specified time point
(C++11) (function)