Maison  >  Article  >  interface Web  >  Une brève discussion sur le processus général de la boucle d'événements Node

Une brève discussion sur le processus général de la boucle d'événements Node

青灯夜游
青灯夜游avant
2021-10-28 09:54:012336parcourir

Cet article vous donnera une brève compréhension de la boucle d'événements dans Node.js Jetons un coup d'œil à la séquence approximative de la boucle d'événements Node.js. J'espère que cela sera utile à tout le monde !

Une brève discussion sur le processus général de la boucle d'événements Node

Nous savons tous que la plupart des applications que nous utilisons actuellement sont pilotées par des événements Lors de notre interaction avec l'application, de nombreux événements seront générés, tels que des clics, des double-clics, des triple-clics, etc. également de nombreux événements qui se produiront lorsque la lecture du fichier sera terminée ou que certaines tâches seront exécutées.

Nous savons tous que Node.js est monoprocessus et monothread, mais il peut atteindre une concurrence élevée, qui est indissociable de notre mécanisme événementiel. Plus précisément, il est implémenté via la boucle d'événements, et une concurrence élevée peut être obtenue grâce à des interfaces de rappel asynchrones et des pilotes d'événements. [Apprentissage recommandé : "Tutoriel Nodejs"]

Boucle d'événement

Lorsque Node.js s'exécute dans un seul thread, cela équivaut à entrer dans une boucle "morte", et la fonction de rappel sur chaque événement asynchrone est équivalent à vérifier La petite amie sur votre téléphone portable, si sa petite amie remarque que de "mauvaises" choses (événements) se produisent, elle se disputera avec vous (appelez la fonction de rappel - la fonction de querelle), et elle ne verra jamais ces choses (événements) qui te font te disputer jusqu'au futur. Quand, j'arrêterai de regarder ton téléphone (sortie de la boucle sans fin).

La boucle d'événements transmet généralement les opérations correspondantes au système d'exploitation pour traitement. Nous savons tous que les systèmes d'exploitation actuels sont essentiellement multithreads. En d’autres termes, nous savons que cette petite amie nommée Node.js ne se contente généralement pas de regarder nos téléphones portables, elle engage également une équipe de surveillance professionnelle pour surveiller vos téléphones portables. De cette façon, plusieurs personnes de l'équipe de surveillance peuvent vérifier les informations de votre téléphone portable (traitées en arrière-plan du système d'exploitation). Lorsqu'une partie des informations est traitée, votre petite amie sera immédiatement informée (lorsqu'une opération est terminée, Node. js sera notifié immédiatement), puis votre petite amie sera informée en fonction de la nature de l'information enverra les choses à faire dans la file d'attente de travail (Node.js ajoutera la fonction de rappel appropriée à la file d'attente d'interrogation), et puis exécutez-les un par un.

Voici un schéma simplifié de la boucle d'événements de Node.js :

Une brève discussion sur le processus général de la boucle dévénements Node

Dans la figure ci-dessus, chaque étape aura une file d'attente de fonctions de rappel exécutables FIFO. Normalement, lorsque la boucle d'événements entre dans l'une d'elles, la. les opérations de cette étape seront exécutées, puis les rappels dans la file d'attente de cette étape seront exécutés jusqu'à ce que la fin de la file d'attente ou la limite du nombre de rappels soit atteinte, puis la boucle d'événements entrera dans l'étape suivante, et bientôt.

D'après cette image, nous pouvons savoir que la séquence de la boucle d'événements est approximativement :

Recevoir des données (données entrantes)->Sondage->Vérification->Fermer le rappel- >Timers->rappels en attente ->inactif, préparer->Sondage

Pour plus de connaissances liées à la programmation, veuillez visiter : Cours de programmation ! !

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer