Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Was ist der Unterschied zwischen usleep und Sleep unter Linux?
Der Unterschied zwischen usleep und Sleep unter Linux: Die Sleep-Funktion wird verwendet, um eine Unterbrechung für die angegebene Anzahl von Sekunden durchzuführen, während die Funktion usleep verwendet wird, um eine Unterbrechung für die angegebene Anzahl von Mikrosekunden durchzuführen. Sleep ist ein Nicht-Systemaufruf, der in einer Bibliotheksfunktion implementiert ist und die Alarmzeit über alarm() festlegt. Mit der Ausnahme, dass die Zeiteinheit Mikrosekunden ist, ähnelt usleep der Verwendung von Sleep.
Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.
#include <windows.h> // 在VC中使用带上头文件 #include <unistd.h> // 在gcc编译器中,使用的头文件因gcc版本的不同而不同sleep() ist ein Nicht-Systemaufruf. Sleep() wird in der Bibliotheksfunktion implementiert. Er legt die Alarmzeit über alarm() fest und verwendet sigsuspend(), um den Prozess beim Signal SIGALARM anzuhalten. sleep() kann nur bis zur zweiten Ebene genau sein. Sleep() bewirkt, dass der aktuelle Prozess angehalten wird, bis die durch den Sekundenparameter angegebene Zeit erreicht ist oder bis er durch ein Signal unterbrochen wird. #includef55648144b4a1c5cce7ad2f6519be0f3return: Wenn der Prozess für die durch den Sekundenparameter angegebene Zeit angehalten wird, wird bei Erfolg 0 zurückgegeben. Bei einer Signalunterbrechung werden die verbleibenden Sekunden zurückgegeben.
Beispiel:
unsigned int sleep(unsigned int seconds);(2) usleep()----in Mikrosekunden
Header-Datei:
#include <windows.h> #include<stdio.h> int main() { int a; a=1; printf("hello"); sleep(a); /* VC 使用Sleep*/ printf("world"); return 0; }
#include <unistd.h>Außer dass die Zeiteinheit Mikrosekunden ist, ähnelt sie der verwendeten Funktion „sleep()“. Darüber hinaus ist auch die Implementierung unterschiedlich. Da der Schlaf mithilfe von Alarm implementiert wird, ist die Zeiteinheit s, während die Zeiteinheit von usleep definitiv nicht durch Alarm implementiert wird. Daher sind ihre Implementierungen unterschiedlich, aber beide sind es wird unter Linux verwendet, kann aber nicht unter Windows verwendet werden, da sowohl Sleep als auch Usleep unter unistd.h definiert sind. #includef55648144b4a1c5cce7ad2f6519be0f3return: Wenn der Prozess für die durch den Sekundenparameter angegebene Zeit angehalten wird, wird bei Erfolg 0 zurückgegeben. Bei einer Signalunterbrechung werden die verbleibenden Mikrosekunden zurückgegeben. Rückgabewert: Keiner Inhaltsbeschreibung: Diese Funktion kann die Ausführung des Programms vorübergehend stoppen. Der Parameter micro_seconds ist die Anzahl der Mikrosekunden (us), die pausiert werden sollen. Hinweis: Diese Funktion kann im Windows-Betriebssystem nicht funktionieren. Wird in der Linux-Testumgebung verwendet. Siehe: usleep() ähnelt sleep() und wird verwendet, um angehaltene Prozesse zu verzögern. Der Prozess wird angehalten und in die Reday-Warteschlange gestellt. Unter normalen Umständen, wenn die Verzögerungszeit in der Größenordnung von Sekunden liegt, verwenden Sie die Funktion „sleep()“ so oft wie möglich. Wenn die Verzögerungszeit mehrere zehn Millisekunden (1 ms = 1000 us) oder weniger beträgt, verwenden Sie nach Möglichkeit die Funktion usleep(). Auf diese Weise können Sie die CPU-Zeit optimal nutzenEmpfohlenes Lernen:
Linux-Video-Tutorial
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen usleep und Sleep unter Linux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!