c sleep how use sleep function c programs
In diesem C ++ Sleep-Tutorial wird die Sleep-Funktion in C ++ erläutert und erläutert, wie ein Thread in den Ruhezustand versetzt wird. Wir werden auch etwas über die anderen Funktionen lernen, nämlich. du schläfst:
Jedes Computerprogramm, das ein Prozess, eine Aufgabe oder ein Thread ist, kann für eine bestimmte Zeit in den Ruhezustand versetzt oder in einen inaktiven Zustand versetzt werden. Die Ausführung wird für diesen Zeitraum ausgesetzt. Die Ausführung wird wieder aufgenommen, wenn das Zeitintervall des Ruhezustands abläuft oder ein Signal oder eine Unterbrechung bewirkt, dass die Ausführung fortgesetzt wird.
Um ein Programm (Aufgabe, Prozess oder Thread) in den Ruhezustand zu versetzen, verwenden wir einen Schlafsystemaufruf. Bei einem typischen Schlafsystemaufruf wird die Zeit als Parameter verwendet, der angibt, wie viel Zeit das Programm benötigt, um zu schlafen oder inaktiv zu bleiben.
=> Überprüfen Sie hier die komplette C ++ - Schulungsserie.
Wir haben auch usleep () - und thread :: sleep-Funktionen, die wir in diesem Tutorial diskutieren werden. Die angegebene Zeit beträgt meistens Millisekunden, Mikrosekunden oder Sekunden. Abhängig davon haben wir verschiedene Funktionen, die das Programm in den Ruhezustand versetzen können.
Was du lernen wirst:
- Sleep () Funktion
- Usleep () Funktion
- Thread Sleep (sleep_for & sleep_until)
- Häufig gestellte Fragen
- Fazit
- Literatur-Empfehlungen
Sleep () Funktion
Die C ++ - Sprache bietet keine eigene Schlaffunktion. Die spezifischen Dateien des Betriebssystems mögen jedoch unistd.h für Linux und Windows.h für Windows bieten diese Funktionalität.
Wenn wir das Linux- oder UNIX-Betriebssystem verwenden, müssen wir die Header-Datei 'unistd.h' in unser Programm aufnehmen, um das zu verwenden Schlaf () Funktion.
Bei Verwendung des Windows-Betriebssystems müssen wir den Header 'Windows.h' einfügen, um die Funktion sleep () verwenden zu können. Um ein plattformübergreifendes Programm zu schreiben, können wir den folgenden Code verwenden, damit einer der Header verwendet wird.
#ifdef _WIN32 #include #else #include #endif
Die Schlaffunktion wird unten beschrieben:
Funktionsprototyp:
Schlaf ohne Vorzeichen (Sekunden ohne Vorzeichen);
Parameter:
Sekunden => Zeitraum in Sekunden, für den die Ausführung des Programms unterbrochen wird
Rückgabewert:
0 => Wenn der Schlaf nach Ablauf der angeforderten Zeit zurückkehrt.
Wenn der Schlaf durch ein Signal unterbrochen wird, wird eine nicht verschlafene Menge (angeforderter angeforderter Zeitraum abzüglich der tatsächlich verstrichenen Zeit) zurückgegeben.
Beschreibung:
Die Funktion sleep () bewirkt, dass das Programm oder der Prozess, in dem es aufgerufen wird, seine Ausführung vorübergehend für einen durch den Funktionsparameter angegebenen Zeitraum in Sekunden anhält. Die Ausführung wird ausgesetzt, bis die angeforderte Zeit abgelaufen ist oder ein Signal oder ein Interrupt an die Funktion gesendet wird.
Wenn das System jedoch eine andere Aktivität geplant hat, kann die Suspendierungszeit länger sein.
Im Folgenden wird ein C ++ - Programm angegeben, das die Sleep-Funktion zwischen zwei cout-Anweisungen verwendet.
Fragen und Antworten zu SQL-Entwicklerinterviews pdf
#ifdef _WIN32 #include #else #include #endif #include #include using namespace std; int main() { cout << 'Hello '; cout.flush(); sleep(10); cout << 'World'; cout << endl; return 0; }
Ausgabe:
Hallo Welt
Im obigen Programm geben wir einen Schlafbefehl mit einer Zeitspanne von 10 Sekunden nach dem Drucken von 'Hallo'. Der Compiler wartet 10 Sekunden nach dem Drucken von 'Hallo' und druckt dann die 'Welt'.
Hinweis: Leser sollten dieses Programm ausführen, um die Funktionsweise des Befehls sleep tatsächlich zu verstehen
Usleep () Funktion
Der Header 'unistd.h' bietet eine weitere Funktion 'usleep ()', mit der die Ausführung eines Programms für einen bestimmten Zeitraum unterbrochen werden kann. Die Arbeitsweise ähnelt der bereits beschriebenen Funktion sleep ().
Funktionsprototyp: int usleep (useconds_t useconds);
Parameter: useconds => Anzahl der Mikrosekunden, für die die Ausführung angehalten wird
Rückgabewert:
0 => Usleep ist erfolgreich zurückgekehrt.
-1 & errno => Funktion fehlgeschlagen.
Beschreibung:
Die Funktion usleep () unterbricht die Ausführung des aufrufenden Threads für Sekunden, Mikrosekunden oder bis das Signal an den Thread gesendet wird, der die Ausführung unterbricht.
Die Granularität der in der usleep-Funktion verwendeten Timer-Werte kann implementierungsspezifisch sein. Wenn wir eine feinere Granularität als die von der Implementierung angegebene benötigen, wird der tatsächliche Timer-Wert auf den nächsten unterstützten Wert aufgerundet.
Im Folgenden finden Sie ein Beispiel zur Demonstration der Funktion usleep ().
#include #include #include using namespace std; int main() { cout << 'Hello '; cout.flush(); usleep(10000); cout << 'World'; cout << endl; return 0; }
Ausgabe:
Hallo Welt
Wie in der obigen Ausgabe gezeigt, geben wir den Zeitraum für die Usleep-Funktion als 10000 Mikrosekunden an und drucken wie beim vorherigen Programm mit der Sleep-Funktion die Zeichenfolge „Hello World“.
Thread Sleep (sleep_for & sleep_until)
C ++ 11 bietet spezielle Funktionen, um einen Thread in den Ruhezustand zu versetzen.
Es gibt zwei Funktionen:
Std :: this_thread :: sleep_for
Funktionsprototyp:
template void sleep_for( const std::chrono::duration& sleep_duration );
Parameter: sleep_duration => Schlafdauer
Rückgabewert: keiner
Beschreibung: Die Funktion sleep_for () ist im Header definiert. Die Funktion sleep_for () blockiert die Ausführung des aktuellen Threads mindestens für die angegebene Zeit, d. H. Sleep_duration.
Diese Funktion kann aufgrund von Planungsaktivitäten oder Verzögerungen bei Ressourcenkonflikten länger als eine bestimmte Zeit blockiert werden.
Ein C ++ - Beispiel, das die Verwendung von sleep_for demonstriert, ist unten angegeben:
#include #include #include using namespace std; int main() { cout << 'Hello I'm waiting....' << endl; this_thread::sleep_for(chrono::milliseconds(20000) ); cout << 'Waited 20000 ms
'; }
Ausgabe:
Hallo, ich warte ...
2000 ms gewartet
Im obigen Programm haben wir eine festgelegte Schlafdauer von 20000 Millisekunden. Dies bedeutet, dass der Thread für 20000 Millisekunden blockiert wird, bevor der Vorgang fortgesetzt wird.
Std :: this_thread :: sleep_until
Funktionsprototyp:
template void sleep_until( const std::chrono::time_point& sleep_time );
Parameter: sleep_time => Zeitdauer, bis zu der der Thread blockiert werden soll.
Rückgabewert: keiner
Beschreibung: Diese Funktion ist im Header definiert. Die Funktion sleep_until () blockiert die Ausführung eines Threads, bis die sleep_time abgelaufen ist. Wie die anderen Funktionen kann diese Funktion aufgrund von Planungsaktivitäten oder Verzögerungen bei Ressourcenkonflikten auch länger als eine bestimmte Zeit blockieren.
Ein C ++ - Programm für die Funktion sleep_until ist unten angegeben.
#include #include #include using namespace std; void current_time_point(chrono::system_clock::time_point timePt) { time_t timeStamp = chrono::system_clock::to_time_t(timePt); cout << std::ctime(&timeStamp) << endl; } void threadFunc() { cout<<'Current Time :: '; current_time_point(chrono::system_clock::now()); chrono::system_clock::time_point timePt = chrono::system_clock::now() + chrono::seconds(60); cout << 'Sleeping Until :: '; current_time_point(timePt); this_thread::sleep_until(timePt); cout<<'Woke up...Current Time :: '; current_time_point(chrono::system_clock::now()); } int main() { std::thread th(&threadFunc); th.join(); return 0; }
Ausgabe:
Aktuelle Zeit :: Do 19. September 12:52:01 2019
Schlafen bis :: Do 19. September 12:53:01 2019
Wachte auf… Aktuelle Zeit :: Do 19. September 12:53:01 2019
In diesem Programm lassen wir den Thread 60 Sekunden lang schlafen, d. H. 1 Minute lang. Sobald 1 Minute beendet ist; Thread wacht auf und druckt die aktuelle Zeit.
Häufig gestellte Fragen
F # 1) Was macht sleep () in C ++?
Antworten: Die Funktion Sleep () unterbricht die Ausführung des Programms für einen bestimmten Zeitraum. Dieser Zeitraum wird als Argument für die Funktion sleep () angegeben.
F # 2) Was ist die Header-Datei für den Ruhezustand in C ++?
Antworten: Der Header für den Ruhezustand lautet 'unistd.h' für das LINUX / UNIX-Betriebssystem und 'Windows.h' für das Windows-Betriebssystem. Für den Thread-Schlaf, der die Funktionen 'sleep_for' und 'sleep_until' verwendet, wird der Header verwendet.
F # 3) Was nützt #include Unistd H?
Antworten: Der Header 'Unistd.h' ist der Header, der die sleep () - Funktion definiert, um die Ausführung des Programms anzuhalten.
Fazit
In diesem Tutorial für die Funktion sleep () haben wir die Funktion sleep und usleep () erläutert, die mit den Funktionen sleep und thread sleep, sleep_for und sleep_until identisch sind. Die Funktionen Sleep () und usleep () sind bis auf die Zeiteinheit, mit der die Ruhezeit angegeben wird, identisch.
In der Funktion sleep () wird die Zeit in Sekunden angegeben, während in der Funktion usleep () die Zeit in Mikrosekunden angegeben wird. Die Thread-Funktionen sleep_for () unterbrechen die Thread-Ausführung für einen bestimmten Zeitraum, der als Argument angegeben wird. Die zweite Thread-Funktion sleep_until () unterbricht die Ausführung des Threads, bis eine bestimmte Zeit verstrichen ist.
Empfohlene Lektüre = >> Was ist Thread-Test?
Die Rückkehr aller besprochenen Schlaffunktionen kann je nach Zeitplanung oder anderen ressourcenspezifischen Verzögerungen länger dauern.
=> Lesen Sie hier die beliebte C ++ - Schulungsserie.
Literatur-Empfehlungen
- Python-Hauptfunktions-Tutorial mit praktischen Beispielen
- Multithreading in C ++ mit Beispielen
- 10 beste Freizeituhr-Software für die Zeiterfassung von Mitarbeitern
- QTP-Tutorial Nr. 21 - So machen Sie QTP-Tests mithilfe von Aktionen und Funktionsbibliotheken modular und wiederverwendbar
- Funktionen in C ++ mit Typen und Beispielen
- Befehle für Unix-Hilfsprogramme: Welche, Man, Find Su, Sudo (Teil D)
- Teilzeit freiberufliche Stellenangebot für Selenexperten
- 10 BEST Time Tracking Apps für Freiberufler (2021 SELECTIVE)