Heim > Artikel > Web-Frontend > Warum Knoten eine hohe Parallelität haben können
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.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, NodeJS-Version 12.19.0, Dell G3-Computer.
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
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.
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!