Maison > Article > interface Web > Un examen plus approfondi des E/S non bloquantes dans Node.js
En parlant de Node.js, vous avez probablement entendu un tas de noms propres vertigineux
À propos de l'asynchrone, principalement de la boucle d'événements et des **E/S non bloquantes, **officiellement parce que ces deux points font Node.js haute performance.
Il est donc très important de comprendre le mécanisme asynchrone et l'utilisation de Node.js
E/S bloquantes La différence entre et les E/S non bloquantes réside dans le temps nécessaire au système pour recevoir une entrée puis une sortie, et s'il peut recevoir d'autres entrées
Pour clients/personnel de commande
Comparez la tante de la cafétéria et le serveur à un système logiciel
Entrée = commander de la nourriture
Sortie = servir de la nourriture
[Apprentissage recommandé : " Tutoriel Nodejs"]
Par exemple : Un développeur dans le forum Une question a été soulevée sur : "Comment résoudre ce problème Node.js En attente en ligne, urgent" .
La situation de blocage des E/S est-> Il continue d'attendre que d'autres personnes répondent, et lorsque d'autres personnes répondent, il recommencera D'autres choses.
La situation d'E/S non bloquantes est-> Il va faire autre chose et revient pour voir la réponse après un certain temps
Xiaofang doit faire les choses suivantes à faire tâches ménagères :
Veuillez concevoir un et une séquence raisonnable pour minimiser le nombre de fleurs. Il est temps de terminer ces choses
Remarques :
const glob = require("glob"); var result = null; console.time("glob"); // 获取目下的文件和文件名 result = glob.sync(__dirname + "/**/*"); console.timeEnd("glob"); console.log(result);
imprime les résultats suivants
On peut voir qu'il faut 30 毫秒的等待时间
pour obtenir le résultat
À partir du code ci-dessus, il peut être conclu que
le blocage des E/S a un temps d'attente. Aucune autre chose ne peut être effectuée pendant l'exécution
const glob = require("glob"); var result = null; console.time("glob"); // 获取目下的文件和文件名 glob(__dirname + "/**/*", function (err, res) { result = res; console.log("got result"); }); console.timeEnd("glob"); console.log(1 + 1);
Imprimer les résultats suivants
glob: 3.198ms 2 got result
De du code ci-dessus, on peut conclure que les E/S non bloquantes réduisent le temps d'attente, vous pouvez également effectuer d'autres choses pendant le processus d'exécution
Pour plus de connaissances sur la programmation, veuillez visiter :Introduction à la 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!