Interrogation d'événements et exécution de code asynchrone dans le nœud
世界只因有你
世界只因有你 2017-07-05 10:39:22
0
2
873

Le thread principal du nœud exécute le code js. Lorsqu'il s'agit d'une opération asynchrone, le nœud le remet à libuv pour exécution, puis exécute le code derrière l'opération asynchrone. Une fois libuv exécuté, il sera placé dans une file d'attente circulaire. libuv aura une boucle d'événement (Event Loop) similaire à while (true). Cette boucle d'événement existe dans le thread unique du nœud (c'est-à-dire le thread principal). .Le thread principalboucleObtient la fonction de rappel d'exécution d'événement.
Alors, quel est le processus de boucle du thread principal pour récupérer les événements et exécuter le code asynchrone derrière celui-ci ? Il est impossible pour un thread de faire deux choses en même temps. Après avoir exécuté le code asynchrone, le processeur bouclera-t-il pour récupérer les événements lorsqu'il est inactif ?

世界只因有你
世界只因有你

répondre à tous(2)
过去多啦不再A梦

Tout d'abord, indiquez clairement que le thread principal n'interrogera pas lors de l'exécution de code.
Ainsi, le thread principal exécutera tout le code initial (code non-callback) avant d'interroger la file d'attente d'événements (la file d'attente d'événements peut être considérée comme un objet js lors de l'interrogation) car en théorie le thread principal du moteur js ne peut reconnaître que code js.
Mais une fois le code initial exécuté, le thread principal js interrogera les événements lorsqu'une fonction de rappel est obtenue, le moteur js n'interrogera pas à nouveau tant que le code de rappel actuel n'est pas exécuté.
Pour résumer, seul le moteur js interrogera lorsqu'il n'y a pas de code à exécuter En d'autres termes, il n'y a toujours qu'une seule fonction de rappel dans le thread principal js
.

typecho


Je pense que cet article peut résoudre vos doutes

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal