Heim Web-Frontend js-Tutorial Worauf basiert der asynchrone Mechanismus des Knotens?

Worauf basiert der asynchrone Mechanismus des Knotens?

Jul 11, 2022 pm 07:18 PM
nodejs​ node

Der asynchrone Mechanismus des Knotens basiert auf „Ereignissen“. Alle E/A-, Netzwerkkommunikations- und Datenbankabfragen werden auf nicht blockierende Weise ausgeführt und die zurückgegebenen Ergebnisse werden von der Ereignisschleife verarbeitet. Der Knoten verarbeitet nur ein Ereignis gleichzeitig und tritt sofort in die Ereignisschleife ein, um nachfolgende Ereignisse nach Abschluss zu überprüfen. Auf diese Weise können sich CPU und Speicher auf die gleichzeitige Verarbeitung einer Sache konzentrieren und gleichzeitig versuchen, die parallele Ausführung zeitaufwändiger E/A- und anderer Vorgänge zu ermöglichen.

Worauf basiert der asynchrone Mechanismus des Knotens?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, NodeJS Version 16, DELL G3-Computer.

NodeJS ist Single-Threading und bietet die folgenden Vorteile:

  • Einfach

  • Hohe Leistung, Vermeidung von häufigem Threadwechsel-Overhead

  • Es beansprucht weniger Ressourcen, da es Single-Threaded ist , und unter hoher Last Unter solchen Umständen ist die Speichernutzung immer noch sehr gering

  • Thread-sicher, es gibt keine Probleme wie Sperren, Entsperren und Deadlock

Wie löst man hohe Parallelität?

node verwendet asynchrone E/A und ereignisgesteuert (Rückruffunktion), um das Problem der hohen Parallelität zu lösen.

Im Allgemeinen bieten Lösungen mit hoher Parallelität ein Multithreading-Modell, das einen Thread für jede Geschäftslogik bereitstellt und den Zeitaufwand synchroner E/A-Aufrufe durch System-Thread-Switching ausgleicht. Wie bei Apache gibt es einen Thread pro Anfrage.

NodeJS verwendet ein Single-Threaded-Modell und asynchrone Anforderungsmethoden für alle E/A-Vorgänge, um häufige Kontextwechsel zu vermeiden. Wenn NodeJS ausgeführt wird, tritt es in die Ereignisschleife ein und wartet darauf Wenn ein Ereignis eintrifft, wird jede asynchrone E/A-Anforderung in die Ereigniswarteschlange verschoben, um auf die Ausführung zu warten.

Der asynchrone Mechanismus von NodeJS basiert auf Ereignissen. Alle E/A-, Netzwerkkommunikations- und Datenbankabfragen werden nicht blockierend ausgeführt und die zurückgegebenen Ergebnisse werden von der Ereignisschleife verarbeitet. Wie im Bild gezeigt:

Worauf basiert der asynchrone Mechanismus des Knotens?

Der Node.js-Prozess verarbeitet jeweils nur ein Ereignis. Nach Abschluss tritt er sofort in die Ereignisschleife ein, um nachfolgende Ereignisse zu überprüfen. Dies hat den Vorteil, dass sich CPU und Speicher auf die gleichzeitige Verarbeitung einer Sache konzentrieren können und gleichzeitig versuchen, die parallele Ausführung zeitaufwändiger E/A- und anderer Vorgänge zu ermöglichen. Bei langsamen Verbindungsangriffen fügt Node.js nur Anforderungen zur Ereigniswarteschlange hinzu und wartet auf die Antwort des Betriebssystems. Daher entsteht kein Multithreading-Overhead, was die Robustheit von Webanwendungen erheblich verbessern und böswillige Angriffe verhindern kann.

Ereignisschleifenmechanismus

Die sogenannte Ereignisschleife bedeutet, dass NodeJS den Ereignismechanismus verwendet, um alle asynchronen Vorgänge zu lösen. Es gibt einen Thread, der ständig in einer Schleife läuft, um die Ereigniswarteschlange zu erkennen.

Die gesamte Logik in NodeJS ist die Rückruffunktion von Ereignissen, daher befindet sich NodeJS immer in der Ereignisschleife und der Programmeintrag ist die Rückruffunktion des ersten Ereignisses in der Ereignisschleife. Die Ereignisrückruffunktion kann eine E/A-Anfrage ausgeben oder das Ereignis direkt ausgeben und nach der Ausführung zur Ereignisschleife zurückkehren. Die Ereignisschleife überprüft die Ereigniswarteschlange auf nicht behandelte Ereignisse, bis das Programm endet. Die Ereignisschleife von NodeJS ist für Entwickler unsichtbar und wird von der libev-Bibliothek implementiert. libev prüft ständig, ob aktive Ereignis-Listener erkannt werden können, und verlässt die Ereignisschleife erst, wenn keine Ereignis-Listener erkannt werden und das Programm beendet wird.

Worauf basiert der asynchrone Mechanismus des Knotens?

Weitere Informationen zu Knoten finden Sie unter:

nodejs-Tutorial!

Das obige ist der detaillierte Inhalt vonWorauf basiert der asynchrone Mechanismus des Knotens?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So löschen Sie einen Knoten in NVM So löschen Sie einen Knoten in NVM Dec 29, 2022 am 10:07 AM

So löschen Sie einen Knoten mit nvm: 1. Laden Sie „nvm-setup.zip“ herunter und installieren Sie es auf dem Laufwerk C. 2. Konfigurieren Sie Umgebungsvariablen und überprüfen Sie die Versionsnummer mit dem Befehl „nvm -v“. install“-Befehl Knoten installieren; 4. Löschen Sie den installierten Knoten über den Befehl „nvm uninstall“.

So verwenden Sie Express für den Datei-Upload im Knotenprojekt So verwenden Sie Express für den Datei-Upload im Knotenprojekt Mar 28, 2023 pm 07:28 PM

Wie gehe ich mit dem Datei-Upload um? Der folgende Artikel stellt Ihnen vor, wie Sie Express zum Hochladen von Dateien im Knotenprojekt verwenden. Ich hoffe, er ist hilfreich für Sie!

Eine ausführliche Analyse des Prozessmanagement-Tools „pm2' von Node Eine ausführliche Analyse des Prozessmanagement-Tools „pm2' von Node Apr 03, 2023 pm 06:02 PM

In diesem Artikel stellen wir Ihnen das Prozessmanagement-Tool „pm2“ von Node vor und sprechen darüber, warum PM2 benötigt wird und wie Sie PM2 installieren und verwenden. Ich hoffe, dass es für alle hilfreich ist!

PI -Knotenunterricht: Was ist ein PI -Knoten? Wie installiere und richte ich einen PI -Knoten ein? PI -Knotenunterricht: Was ist ein PI -Knoten? Wie installiere und richte ich einen PI -Knoten ein? Mar 05, 2025 pm 05:57 PM

Detaillierte Erläuterungs- und Installationshandbuch für Pinetwork -Knoten In diesem Artikel wird das Pinetwork -Ökosystem im Detail vorgestellt - PI -Knoten, eine Schlüsselrolle im Pinetwork -Ökosystem und vollständige Schritte für die Installation und Konfiguration. Nach dem Start des Pinetwork -Blockchain -Testnetzes sind PI -Knoten zu einem wichtigen Bestandteil vieler Pioniere geworden, die aktiv an den Tests teilnehmen und sich auf die bevorstehende Hauptnetzwerkveröffentlichung vorbereiten. Wenn Sie Pinetwork noch nicht kennen, wenden Sie sich bitte an was Picoin ist? Was ist der Preis für die Auflistung? PI -Nutzung, Bergbau und Sicherheitsanalyse. Was ist Pinetwork? Das Pinetwork -Projekt begann 2019 und besitzt seine exklusive Kryptowährung PI -Münze. Das Projekt zielt darauf ab, eine zu erstellen, an der jeder teilnehmen kann

Lassen Sie uns darüber sprechen, wie Sie mit pkg Node.js-Projekte in ausführbare Dateien packen. Lassen Sie uns darüber sprechen, wie Sie mit pkg Node.js-Projekte in ausführbare Dateien packen. Dec 02, 2022 pm 09:06 PM

Wie packe ich die ausführbare Datei von nodejs mit pkg? Im folgenden Artikel erfahren Sie, wie Sie mit pkg ein Node-Projekt in eine ausführbare Datei packen. Ich hoffe, dass er Ihnen weiterhilft!

Was tun, wenn npm node gyp ausfällt? Was tun, wenn npm node gyp ausfällt? Dec 29, 2022 pm 02:42 PM

npm node gyp schlägt fehl, weil „node-gyp.js“ nicht mit der Version von „Node.js“ übereinstimmt. Die Lösung ist: 1. Löschen Sie den Knotencache über „npm cache clean -f“ 2. Über „npm install -“ g n“ Installieren Sie das n-Modul. 3. Installieren Sie die Version „node v12.21.0“ über den Befehl „n v12.21.0“.

Was ist ein Single-Sign-On-System? Wie implementiert man es mit NodeJS? Was ist ein Single-Sign-On-System? Wie implementiert man es mit NodeJS? Feb 24, 2023 pm 07:33 PM

Was ist ein Single-Sign-On-System? Wie implementiert man es mit NodeJS? Im folgenden Artikel erfahren Sie, wie Sie mit Node ein Single-Sign-On-System implementieren. Ich hoffe, dass er Ihnen weiterhilft!

Tokenbasierte Authentifizierung mit Angular und Node Tokenbasierte Authentifizierung mit Angular und Node Sep 01, 2023 pm 02:01 PM

Die Authentifizierung ist einer der wichtigsten Teile jeder Webanwendung. In diesem Tutorial werden tokenbasierte Authentifizierungssysteme und ihre Unterschiede zu herkömmlichen Anmeldesystemen erläutert. Am Ende dieses Tutorials sehen Sie eine voll funktionsfähige Demo, die in Angular und Node.js geschrieben wurde. Traditionelle Authentifizierungssysteme Bevor wir zu tokenbasierten Authentifizierungssystemen übergehen, werfen wir einen Blick auf traditionelle Authentifizierungssysteme. Der Benutzer gibt seinen Benutzernamen und sein Passwort im Anmeldeformular ein und klickt auf „Anmelden“. Nachdem Sie die Anfrage gestellt haben, authentifizieren Sie den Benutzer im Backend, indem Sie die Datenbank abfragen. Wenn die Anfrage gültig ist, wird eine Sitzung mit den aus der Datenbank erhaltenen Benutzerinformationen erstellt und die Sitzungsinformationen werden im Antwortheader zurückgegeben, sodass die Sitzungs-ID im Browser gespeichert wird. Bietet Zugriff auf Anwendungen, die unterliegen

See all articles