Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Was ist der Unterschied zwischen usleep und Sleep unter Linux?

Was ist der Unterschied zwischen usleep und Sleep unter Linux?

WBOY
WBOYOriginal
2022-07-19 15:00:563966Durchsuche

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.

Was ist der Unterschied zwischen usleep und Sleep unter Linux?

Die Betriebsumgebung dieses Tutorials: Linux7.3-System, Dell G3-Computer.

Was ist der Unterschied zwischen usleep und Sleep unter Linux?

Syntax:

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

#includef55648144b4a1c5cce7ad2f6519be0f3

return: 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;
 }
Funktion: Die Funktion usleep hält den Prozess für einen bestimmten Zeitraum an, die Einheit ist Mikrosekunden ( Eins). Millionstelsekunde);

Syntax:

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

#includef55648144b4a1c5cce7ad2f6519be0f3

return: 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 nutzen

Empfohlenes 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn