Warum Knoten eine hohe Parallelität haben können
Apr 22, 2022 pm 02:45 PMDa der Knoten über „transaktionsgesteuerte“ und asynchrone „E/A“-Eigenschaften verfügt, handelt es sich um einen nicht blockierenden asynchronen Vorgang. Für jede gleichzeitige Anforderung registriert der Server ein Auslöseereignis für die Anforderung und gibt eine Rückruffunktion zur Ausführung des Ereignisses aus Nach Abschluss der Verarbeitung wird die Rückruffunktion ausgeführt und anschließend die nächste Ereignisverarbeitung ausgeführt, sodass der Knoten eine hohe Parallelität erreichen kann.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, NodeJS-Version 12.19.0, Dell G3-Computer.
Warum Knoten eine hohe Parallelität erreichen können
nodejs ist ein nicht blockierender asynchroner Vorgang. Für jede gleichzeitige Anfrage registriert der Server ein Auslöseereignis (I/O) für die Anfrage und stellt eine Rückruffunktion bereit (dieser Prozess blockiert keine neuen Verbindungsanfragen). Führen Sie die Ereignisverarbeitung (E/A) nacheinander aus, führen Sie die Rückruffunktion aus, nachdem die Verarbeitung abgeschlossen ist, und führen Sie dann die nächste Ereignisverarbeitung (E/A) aus.
Bevor wir erklären, warum ein Knoten eine hohe Parallelität erreichen kann, sollten Sie sich auch mit einigen anderen Merkmalen des Knotens vertraut machen: JavaScript hat in Browsern die gleichen Eigenschaften und der JavaScript-Hauptthread kann seinen Status nicht mit anderen Threads (z. B. E/A-Threads) im Knoten teilen.
Der Vorteil eines einzelnen Threads ist:
Es besteht keine Notwendigkeit, auf das Statussynchronisationsproblem zwischen Threads wie Multithreading zu achten Deadlock
- Natürlich hat Single-Threading auch viele Nachteile:
- Die Multi-Core-CPU kann nicht vollständig ausgenutzt werden
- Eine große Anzahl von Berechnungen, die die CPU belegen, führt zu Anwendungsblockierungen (d. h. nicht für die CPU geeignet). -intensiv)
- Fehler führen dazu, dass die gesamte Anwendung beendet wird
- Asynchrone E/A Sie fragen sich vielleicht, da der Knoten Single-Threaded ist und alle Ereignisse in einem Thread verarbeitet werden, sollte das nicht so sein? sehr ineffizient sein und einer hohen Parallelität widersprechen?
Im Gegenteil, die Leistung des Knotens ist sehr hoch. Einer der Gründe dafür ist, dass der Knoten über eine asynchrone E/A-Funktion verfügt. Immer wenn eine E/A-Anfrage auftritt, stellt der Knoten einen E/A-Thread für die Anfrage bereit. Dann kümmert sich der Knoten nicht um den E/A-Vorgangsprozess, sondern führt das Ereignis weiterhin im Hauptthread aus. Es muss nur verarbeitet werden, wenn die Anforderung den Rückruf zurückgibt. Das heißt, Node spart viel Zeit beim Warten auf Anfragen.
Dies ist auch einer der wichtigen Gründe, warum der Knoten eine hohe Parallelität unterstützt.Tatsächlich werden nicht nur E/A-Vorgänge, sondern auch die meisten Vorgänge des Knotens auf diese asynchrone Weise ausgeführt. Es ist wie ein Organisator, der nicht alles persönlich erledigen muss. Er muss den Mitgliedern nur sagen, wie sie richtig vorgehen, Feedback annehmen und wichtige Schritte durchführen, damit das gesamte Team effizient arbeiten kann.
Vielleicht möchten Sie noch einmal fragen: Woher weiß der Knoten, dass die Anfrage einen Rückruf zurückgegeben hat, und wann sollte er diese Rückrufe verarbeiten?
Die Antwort ist ein weiteres Merkmal des Knotens: transaktionsgesteuert, das heißt, der Hauptthread führt das Programm durch den Ereignisschleifenauslöser aus
Dies ist ein weiterer wichtiger Grund, warum der Knoten eine hohe Parallelität unterstützt
Empfohlene Studie: „NodeJS-Video-Tutorial》
Das obige ist der detaillierte Inhalt vonWarum Knoten eine hohe Parallelität haben können. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

So verwenden Sie Express für den Datei-Upload im Knotenprojekt

Wie führt man eine Docker-Spiegelung des Node-Dienstes durch? Detaillierte Erläuterung der ultimativen Optimierung

Eine ausführliche Analyse des Prozessmanagement-Tools „pm2' von Node

PI -Knotenunterricht: Was ist ein PI -Knoten? Wie installiere und richte ich einen PI -Knoten ein?

Lassen Sie uns darüber sprechen, wie Sie mit pkg Node.js-Projekte in ausführbare Dateien packen.

Tokenbasierte Authentifizierung mit Angular und Node

Wie konfiguriere und installiere ich node.js in IDEA? Kurze Analyse der Methoden
