node.js wird mit C++ entwickelt. Es handelt sich um eine JS-Laufplattform (Laufumgebung). Die Syntax ist Javascript, der Unterschied besteht jedoch darin, dass es auf dem Server ausgeführt wird. Beweis: Der Quellcode von node befindet sich auf der GitHub-Website. Viele Dateien mit der Endung .cc im Ordner src des Projektstammverzeichnisses enthalten das Wort „class“ (C++ hat „class“, C jedoch nicht)
Node.js erstellt nicht für jede Client-Verbindung einen neuen Thread, sondern verwendet nur einen Thread. Wenn ein Benutzer eine Verbindung herstellt, wird ein internes Ereignis ausgelöst. Durch nicht blockierende E/A- und ereignisgesteuerte Mechanismen ist das Node.js-Programm makroskopisch parallel. Mithilfe von Node.js kann ein Server mit 8 GB Speicher die Verbindungen von mehr als 40.000 Benutzern gleichzeitig verarbeiten.
Da Node.js einen nicht blockierenden E/A-Mechanismus verwendet, wechselt es nach der Ausführung des Codes, der auf die Datenbank zugreift, sofort zur Ausführung des Codes dahinter und fügt den Verarbeitungscode für das Rückgabeergebnis der Datenbank ein in der Rückruffunktion, wodurch die Ausführungseffizienz des Programms verbessert wird.
Wenn eine E/A abgeschlossen ist, wird der Thread, der die E/A-Operation ausführt, in Form eines Ereignisses benachrichtigt und der Thread führt die Rückruffunktion dieses Ereignisses aus. Um asynchrone E/A verarbeiten zu können, muss der Thread über eine Ereignisschleife verfügen, die ständig prüft, ob nicht behandelte Ereignisse vorliegen, und diese nacheinander verarbeitet.
Wenn der Client in Node den Aufbau einer Verbindung, die Übermittlung von Daten usw. anfordert, werden entsprechende Ereignisse ausgelöst. In Node kann jeweils nur eine Ereignisrückruffunktion ausgeführt werden. Während der Ausführung einer Ereignisrückruffunktion können Sie jedoch zur Verarbeitung anderer Ereignisse wechseln (z. B. wenn ein neuer Benutzer eine Verbindung herstellt) und dann zurückkehren, um mit der Ausführung fortzufahren Ursprüngliche Ereignisrückruffunktion, dieser Verarbeitungsmechanismus wird als „Ereignisschleifen“-Mechanismus bezeichnet.
Die unterste Ebene von Node.js ist C++ (V8 ist auch in C++ geschrieben). Fast die Hälfte des zugrunde liegenden Codes wird zum Erstellen von Ereigniswarteschlangen und Rückruffunktionswarteschlangen verwendet. Die ereignisgesteuerte Planung von Serveraufgaben kann sich nur ein Genie vorstellen. Der Tanz auf der Nadelspitze hat die Aufgabe, viele Aufgaben mit einem Faden zu erledigen.
Für welche Art von Anwendungen eignet sich Node.js zur Entwicklung?
Gut in I/O, nicht gut in der Berechnung. Da Node.js am besten für die Aufgabenplanung geeignet ist und Ihr Unternehmen viele CPU-Berechnungen erfordert, bedeutet dies tatsächlich, dass diese Berechnung den einzelnen Thread blockiert und nicht für die Knotenentwicklung geeignet ist.
Node.js eignet sich sehr gut, wenn die Anwendung eine große Menge gleichzeitiger E/A verarbeiten muss und keine sehr komplexe Verarbeitung innerhalb der Anwendung erfordert, bevor eine Antwort an den Client gesendet wird. Node.js eignet sich auch sehr gut für die Arbeit mit Web-Sockets, um interaktive Echtzeitanwendungen mit langen Verbindungen zu entwickeln.
Node.js ist keine unabhängige Sprache. Im Gegensatz zu PHP, JSP, Python, Perl und Ruby, die sowohl Sprachen als auch Plattformen sind, verwendet Node.js JavaScript für die Programmierung und läuft auf einer JavaScript-Engine. (V8).
Das obige ist der detaillierte Inhalt vonWas ist die zugrunde liegende Sprache von node.js?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!