Grundlegendes zu NodeJS & Non-Blocking IO

Daher wurde mir kürzlich der Node-Virus injiziert, der sich in der Programmierwelt sehr schnell verbreitet.

Ich bin fasziniert von dem "Non-Blocking IO" -Ansatz und habe in der Tat einige Programme selbst ausprobiert.

Allerdings verstehe ich bestimmte Konzepte derzeit nicht.

Ich benötige Antworten in Laienform (jemand mit Java-Hintergrund)

1. Multithreading und nicht blockierendes E / A.

Betrachten wir ein praktisches Szenario. Angenommen, wir haben eine Website, auf der sich Benutzer registrieren können. Unten wäre der Code.

..
..
   // Read HTTP Parameters
   // Do some Database work
   // Do some file work
   // Return a confirmation message
..
..

In einer traditionellen Programmiersprache geschieht das oben Gesagte sequentiell. Wenn mehrere Registrierungsanforderungen vorliegen, erstellt der Webserver einen neuen Thread und der Rest ist Geschichte. Natürlich können Programmierer eigene Threads erstellen, um gleichzeitig an Zeile 2 und Zeile 3 zu arbeiten.

Wie ich verstehe, werden in Node die Zeilen 2 und 3 parallel ausgeführt, während der Rest des Programms ausgeführt wird und der Interpreter die Zeilen 2 und 3 alle 'x' ms abfragt.

Nun ist meine Frage, wenn Node eine einzelne Thread-Sprache ist, welche Aufgabe haben die Zeilen 2 und 3, während der Rest des Programms ausgeführt wird?

2. Skalierbarkeit

Ich habe kürzlich gelesen, dass LinkedIn Node als Back-End für seine mobilen Apps angepasst und massive Verbesserungen festgestellt hat.

Kann jemand erklären, wie es einen solchen Unterschied gemacht hat?

3. Anpassung in anderen Programmiersprachen

Warum haben andere Programmiersprachen dieses Non-Blocking IO-Paradigma nicht angepasst, wenn die Leute behaupten, dass Node in Bezug auf die Leistung einen großen Unterschied macht?

Ich bin sicher, ich vermisse etwas. Nur wenn Sie mir erklären und mich mit einigen Links führen können, wäre das hilfreich.

Vielen Dank.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage