# std::this_thread::sleep_for

From cppreference.com
< cpp‎ | thread

Defined in header `<thread>` |  |
template< class Rep, class Period > void sleep_for( const std::chrono::duration <Rep, Period>& sleep_duration ); |  | (since C++11)

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.

### Parameters

sleep_duration | - | time duration to sleep

### Return value

(none)

### 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).

### Example

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(2s);
        auto end = std::chrono::high_resolution_clock::now();
        std::chrono::duration<double, std::milli> elapsed = end-start;
        std::cout << "Waited " << elapsed.count() << " ms\n";
    }

Possible output:

    Hello waiter
    Waited 2000.12 ms

### See also

sleep_until (C++11) | stops the execution of the current thread until a specified time point (function)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/thread/sleep_for&oldid=108781"