Maison  >  Article  >  interface Web  >  Quel est le langage sous-jacent de node.js ?

Quel est le langage sous-jacent de node.js ?

(*-*)浩
(*-*)浩original
2019-05-29 11:37:115204parcourir

node.js est développé en C++. Il s'agit d'une plateforme d'exécution JS (environnement d'exécution). Sa syntaxe est javascript, mais la différence est qu'elle s'exécute sur le serveur. Preuve : le code source du nœud se trouve sur le site Web GitHub. De nombreux fichiers se terminant par le suffixe .cc dans le dossier src du répertoire racine du projet contiennent le mot class (C++ a une classe mais pas C)

Quel est le langage sous-jacent de node.js ?

Node.js ne crée pas de nouveau thread pour chaque connexion client, mais n'utilise qu'un seul thread. Lorsqu'un utilisateur se connecte, un événement interne est déclenché Grâce à des mécanismes d'E/S non bloquants et basés sur les événements, le programme Node.js est macroscopiquement parallèle. Grâce à Node.js, un serveur doté de 8 Go de mémoire peut gérer les connexions de plus de 40 000 utilisateurs en même temps.

Étant donné que Node.js utilise un mécanisme d'E/S non bloquant, après avoir exécuté le code qui accède à la base de données, il passera immédiatement à l'exécution du code derrière lui et placera le code de traitement pour le résultat de retour de la base de données. en fonction de rappel, améliorant ainsi l'efficacité d'exécution du programme.

Lorsqu'une E/S est terminée, le thread effectuant l'opération d'E/S sera notifié sous la forme d'un événement, et le thread exécutera la fonction de rappel de cet événement. Afin de gérer les E/S asynchrones, le thread doit disposer d'une boucle d'événements, vérifiant en permanence s'il existe des événements non gérés et les traitant à leur tour.

Dans Node, lorsque le client demande à établir une connexion, à soumettre des données, etc., les événements correspondants seront déclenchés. Dans Node, une seule fonction de rappel d'événement peut être exécutée à la fois, mais au milieu de l'exécution d'une fonction de rappel d'événement, vous pouvez passer au traitement d'autres événements (par exemple, un nouvel utilisateur se connecte), puis revenir pour continuer l'exécution de la fonction de rappel d'événement. Fonction de rappel d'origine, ce mécanisme de traitement est appelé mécanisme de « boucle d'événement ».

La couche inférieure de Node.js est C++ (la V8 est également écrite en C++). Près de la moitié du code sous-jacent est utilisé pour construire des files d'attente d'événements et des files d'attente de fonctions de rappel. Utiliser la planification événementielle pour terminer la planification des tâches du serveur est une chose à laquelle seul un génie peut penser. La danse sur la pointe de l'aiguille, à l'aide d'un fil, se donne pour mission de gérer de nombreuses tâches.

Quels types d'applications Node.js est-il adapté au développement ?

Bon en E/S, pas bon en calcul. Étant donné que Node.js est le meilleur en matière de planification de tâches, si votre entreprise implique de nombreux calculs de CPU, cela signifie en fait que ce calcul bloque le thread unique et qu'il ne convient pas au développement de Node.

Node.js est très adapté lorsque l'application doit gérer un grand nombre d'E/S simultanées et ne nécessite pas de traitement très complexe au sein de l'application avant d'envoyer une réponse au client. Node.js est également très approprié pour travailler avec des sockets Web afin de développer des applications interactives en temps réel avec de longues connexions.

Node.js n'est pas un langage indépendant Contrairement à PHP, JSP, Python, Perl et Ruby, qui sont à la fois des langages et des plateformes, Node.js utilise JavaScript pour la programmation et s'exécute sur un moteur JavaScript. (V8).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn