Namensräume
Varianten
Aktionen

std::this_thread::sleep_for

Von cppreference.com
< cpp‎ | thread
 
 
Bibliothek für nebenläufige Programmierung
Threads
(C++11)
(C++20)
this_thread Namespace
(C++11)
(C++11)
sleep_for
(C++11)
Kooperatives Beenden
Gegenseitiger Ausschluss
(C++11)
Allgemeines Sperrungsmanagement
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Bedingungsvariablen
(C++11)
Semaphoren
Latches und Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
(C++11)
Sichere Wiederherstellung
(C++26)
Hazard Pointer
Atomare Typen
(C++11)
(C++20)
Initialisierung von atomaren Typen
(C++11)(veraltet in C++20)
(C++11)(veraltet in C++20)
Speicherordnung
(C++11)(deprecated in C++26)
Freie Funktionen für atomare Operationen
Freie Funktionen für atomare Flags
 
Definiert in Header <thread>
template< class Rep, class Period >
void sleep_for( const std::chrono::duration<Rep, Period>& sleep_duration );
(seit C++11)

Blockiert die Ausführung des aktuellen Threads für mindestens die angegebene sleep_duration.

Diese Funktion kann aufgrund von Zeitplanungs- oder Ressourcenkonfliktverzögerungen länger als die sleep_duration blockieren.

Der Standard empfiehlt die Verwendung einer stabilen Uhr zur Messung der Dauer. Wenn eine Implementierung stattdessen eine Systemuhr verwendet, kann die Wartezeit auch empfindlich auf Uhrenanpassungen reagieren.

Inhalt

[bearbeiten] Parameter

sleep_duration - Zeitdauer zum Schlafen

[bearbeiten] Rückgabewert

(keine)

[bearbeiten] Ausnahmen

Alle Ausnahmen, die von clock, time_point oder duration während der Ausführung ausgelöst werden (von der Standardbibliothek bereitgestellte Uhren, Zeitpunkte und Dauern lösen niemals Ausnahmen aus).

[bearbeiten] Beispiel

#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';
}

Mögliche Ausgabe

Hello waiter
Waited 2000.13 ms

[bearbeiten] Siehe auch

stoppt die Ausführung des aktuellen Threads bis zu einem angegebenen Zeitpunkt
(Funktion) [bearbeiten]