Maison > Article > interface Web > Une analyse approfondie des E/S non bloquantes dans Node.js
Cet article vous présentera les E/S non bloquantes dans Node.js J'espère qu'il vous sera utile !
1 : à savoir Entrée/sortie fait référence à l'entrée et à la sortie d'un système
2. principales différences entre non bloquant et bloquant La différence est : Dans le processus entre la réception des entrées et la sortie des résultats, s'il peut continuer à recevoir d'autres entrées. [Apprentissage recommandé : "tutoriel nodejs"]
Exemple :
Par exemple : sortir manger
Il y a généralement deux façons de sortir manger :
1 Aller à la cantine : faire la queue pour manger
[File d'attente] - [Attendez que la personne en face récupère à manger] - [Prenez à manger vous-même] - [Mangez]
2 Allez au restaurant pour manger
[ S'asseoir] - [Commander] - [Attender] - [Manger]
Pour ces deux façons de manger :
1 Manger à la cafétéria : Pour ceux qui servent les repas, ils doivent attendre la personne en face pour finir de manger avant de servir le repas de la personne suivante. Ce processus est le mode Blocage
2 Manger dans un restaurant : aller manger au restaurant Une fois que le serveur a commandé votre repas, il continuera à gérer les besoins de commande du prochain. personne. Lorsque votre repas sera prêt, il vous le livrera. Pour le serveur, ce processus est un processus non bloquant
Comprenez les points clés des E/S non bloquantes
1 Déterminez un systèmepour les opérations d'E/S, par exemple : ci-dessus Dans l'exemple de cuisine, le système qui effectue les E/S est le personnel de service.
D'autres E/S peuvent-elles être effectuées pendant que le système effectue des opérations d'E/S ? Cette bibliothèque est principalement utilisée pour trouver des fichiers correspondant aux conditions ? Pour plus de détails, veuillez consulter https://www.npmjs.com/package/globTout d'abord, nous utilisons la méthode de synchronisation fournie par glob pour lire le fichier
const glob = require("glob"); let result = null; result = glob.sync(__dirname + "/**/*"); console.log(result);
:
us Regardons le temps d'exécution de cette opération de synchronisation :const glob = require("glob"); let result = null; console.time("glob"); result = glob.sync(__dirname + "/**/*"); console.timeEnd("glob");Résultat :
Une opération de lecture d'un fichier bloquera le processus pendant 33 millisecondes, ce qui est inacceptable !
Ensuite, nous utilisons une méthode asynchrone pour lire le fichierlet result2 = null; console.time("glob2"); glob(__dirname + "/**/*", (err, res) => { console.log("glob over"); }); console.timeEnd("glob2");Le résultat :
Il a fallu un total de 4 millisecondes pour lire le fichier de manière asynchrone, et pendant le processus de lecture du fichier de manière asynchrone, nous pouvons Effectuez également d'autres opérations.
Conclusion
Après avoir étudié, je pense que tout le monde a une compréhension plus profonde des E/S non bloquantes, alors à la prochaine fois. Étudiez dur et progressez chaque jour !
Pour plus de connaissances sur la programmation, veuillez visiter : Vidéo 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!