Inhaltsverzeichnis
Warum Knoten eine hohe Parallelität erreichen können
Heim Web-Frontend Front-End-Fragen und Antworten Warum Knoten eine hohe Parallelität haben können

Warum Knoten eine hohe Parallelität haben können

Apr 22, 2022 pm 02:45 PM
node

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

Warum Knoten eine hohe Parallelität haben können

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.

Transaktionsgesteuert

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!

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 Artikel -Tags

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 in NVM

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

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 Wie führt man eine Docker-Spiegelung des Node-Dienstes durch? Detaillierte Erläuterung der ultimativen Optimierung Oct 19, 2022 pm 07:38 PM

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 Eine ausführliche Analyse des Prozessmanagement-Tools „pm2' von Node Apr 03, 2023 pm 06:02 PM

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? PI -Knotenunterricht: Was ist ein PI -Knoten? Wie installiere und richte ich einen PI -Knoten ein? Mar 05, 2025 pm 05:57 PM

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

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

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

Tokenbasierte Authentifizierung mit Angular und Node

Wie konfiguriere und installiere ich node.js in IDEA? Kurze Analyse der Methoden Wie konfiguriere und installiere ich node.js in IDEA? Kurze Analyse der Methoden Dec 21, 2022 pm 08:28 PM

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

See all articles