Heim  >  Artikel  >  Web-Frontend  >  Eine kurze Diskussion über den allgemeinen Prozess der Knotenereignisschleife

Eine kurze Diskussion über den allgemeinen Prozess der Knotenereignisschleife

青灯夜游
青灯夜游nach vorne
2021-10-28 09:54:012337Durchsuche

Dieser Artikel gibt Ihnen einen kurzen Überblick über die Ereignisschleife in Node.js. Ich hoffe, dass er für alle hilfreich ist.

Eine kurze Diskussion über den allgemeinen Prozess der Knotenereignisschleife

Wir alle wissen, dass die meisten Anwendungen, die wir derzeit verwenden, ereignisgesteuert sind. Während unserer Interaktion mit der Anwendung werden viele Ereignisse wie Klicks, Doppelklicks, Dreifachklicks usw. generiert außerdem viele Ereignisse, die auftreten, wenn das Lesen der Datei abgeschlossen ist oder bestimmte Aufgaben ausgeführt werden.

Wir alle wissen, dass Node.js ein Einzelprozess und ein Einzelthread ist, aber es kann eine hohe Parallelität erreichen, die untrennbar mit unserem Ereignismechanismus verbunden ist. Insbesondere wird es über die Ereignisschleife implementiert, und eine hohe Parallelität kann durch asynchrone Rückrufschnittstellen und Ereignistreiber erreicht werden. [Empfohlenes Lernen: „nodejs-Tutorial“]

Ereignisschleife

Wenn Node.js in einem einzelnen Thread ausgeführt wird, entspricht dies dem Eintritt in eine „tote“ Schleife, und die Rückruffunktion für jedes asynchrone Ereignis ist gleichbedeutend mit dem Eintritt in eine „tote“ Schleife Äquivalent zum Überprüfen der Freundin auf Ihrem Mobiltelefon. Wenn ihre Freundin bemerkt, dass „schlechte“ Dinge (Ereignisse) passieren, wird sie sich mit Ihnen streiten (rufen Sie die Rückruffunktion auf – die Streitfunktion), und sie wird diese Dinge (Ereignisse) nie sehen. Das lässt dich bis in die Zukunft streiten. Dann werde ich aufhören, auf dein Telefon zu schauen (die Endlosschleife verlassen).

Die Ereignisschleife übergibt normalerweise die entsprechenden Vorgänge zur Verarbeitung an das Betriebssystem. Wir alle wissen, dass die aktuellen Betriebssysteme grundsätzlich multithreaded sind. Mit anderen Worten: Wir wissen, dass diese Freundin namens Node.js normalerweise nicht nur auf unsere Mobiltelefone schaut. Sie beauftragt auch ein professionelles Überwachungsteam mit der Überwachung Ihrer Mobiltelefone. Auf diese Weise können mehrere Personen im Überwachungsteam Ihre Mobiltelefoninformationen überprüfen (die im Hintergrund des Betriebssystems verarbeitet werden). Wenn ein Teil der Informationen verarbeitet wird, wird Ihre Freundin sofort benachrichtigt (wenn ein Vorgang abgeschlossen ist, Node). js wird sofort benachrichtigt), und dann wird Ihre Freundin entsprechend informiert Die Art der Informationen sendet die zu erledigenden Aufgaben in die Arbeitswarteschlange (Node.js fügt der Abfragewarteschlange die entsprechende Rückruffunktion hinzu) und Führen Sie sie dann einzeln aus.

Hier ist ein vereinfachtes Diagramm der Ereignisschleife von Node.js:

Eine kurze Diskussion über den allgemeinen Prozess der Knotenereignisschleife

In der obigen Abbildung verfügt jede Stufe über eine Warteschlange mit ausführbaren FIFO-Rückruffunktionen. Wenn die Ereignisschleife normalerweise in eine dieser Stufen eintritt, wird die Vorgänge dieser Stufe werden ausgeführt, und dann werden die Rückrufe in der Warteschlange dieser Stufe ausgeführt, bis das Ende der Warteschlange erreicht ist oder die Grenze der Rückrufanzahl erreicht ist. Danach tritt die Ereignisschleife in die nächste Stufe ein und hin und her radeln.

Anhand dieses Bildes können wir erkennen, dass die Reihenfolge der Ereignisschleife ungefähr ist:

Daten empfangen (eingehende Daten) –>Umfrage –>Prüfen –>Rückruf schließen – >Timer –>ausstehende Rückrufe ->untätig, vorbereiten->Umfrage

Weitere Kenntnisse zum Thema Programmierung finden Sie unter: Programmierkurse! !

Das obige ist der detaillierte Inhalt vonEine kurze Diskussion über den allgemeinen Prozess der Knotenereignisschleife. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:juejin.cn. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen