Bien que la question ait déjà été expliquée il y a longtemps, je vais vous faire part de mes réflexions à ce sujet.
Node JS est monofilaire JavaScript
environnement d'exécution. En fait, le créateur de Node JS (Ryan Dahl) s'inquiétait du fait que le traitement parallèle utilisant de multiples threads n'était pas la bonne méthode ou était trop compliqué.
si Node.Js n'utilise pas de threads, comment gère-t-il les demandes concurrentes en parallèle ?
Ans : C'est une phrase complètement fausse quand vous dites qu'il n'utilise pas les threads, Node Js utilise les threads mais d'une manière intelligente. Il utilise un seul thread pour répondre à toutes les demandes HTTP et plusieurs threads dans le pool de threads (dans libuv) pour gérer toute opération de blocage.
Libuv : Une bibliothèque pour gérer les E/S asynchrones.
Que signifie le modèle d'entrée/sortie d'événement ?
Rép. : Le terme correct est E/S non bloquantes . Il ne bloque presque jamais comme le dit le site officiel de Node JS. Lorsqu'une demande est adressée au serveur Node, elle n'est jamais mise en attente. Il prend la demande et commence à l'exécuter ; si l'opération est bloquante, elle est envoyée dans la zone des threads de travail et enregistre un callback pour la même chose ; dès que l'exécution du code est terminée, il déclenche le même callback et va dans la file d'attente des événements et est traité par la boucle d'événements ; ensuite, il crée la réponse et l'envoie au client respectif.
Lien utile : cliquez ici