Maison > Article > interface Web > Qu'est-ce que les E/S non bloquantes dans Node.js ? Comprenez avec des exemples !
Qu'est-ce que les E/S non bloquantes dans
Node.js ? Cet article utilise des exemples pour vous aider à comprendre les E/S non bloquantes dans Node.js. J'espère qu'il vous sera utile !
Écrit au front
Je voulais apprendre Node.js depuis longtemps. Je pense que le front-end doit comprendre les connaissances côté serveur et être capable de compléter de manière autonome un petit full-stack. Cependant, en raison de facteurs de temps, le semestre dernier, après avoir appris quelques bases, je n'ai plus le temps d'apprendre. Il se trouve que j'ai réussi le deuxième cours aujourd'hui, et je suis là pour vous tester à nouveau avec Node.js ! ! ! [Apprentissage recommandé : "tutoriel Nodejs"]
Aller à la cantine pour manger : nous devons tous faire la queue pour manger
Notre processus est : Faire la queue-- ---->Attendez Les gens devant nous cuisinent -------->C'est à notre tour de cuisiner nous-mêmes------->Commencer à manger
Manger au restaurant : commander nourriture au restaurant
Maintenant, notre processus est le suivant : Asseyez-vous------->Commandez------->Attendez-------->Commencez à manger
Essayez de commencez à utiliser des choses étranges dans le markdown
Faire la queue pour commander de la nourriture ou commander au restaurant
Pour ceux d'entre nous qui commandent du personnel :
Continuez à regarder la phrase du haut :
Le système reçoit une entrée Pendant la période de sortie, peut-il recevoir d'autres entrées
Dans le marron, le système =. la tante qui cuisine à la cantine ou le serveur du restaurant, entrée = commander de la nourriture, sortie = servir de la nourriture (servir de la nourriture)
La tante de la cafétéria ne peut servir qu'un seul morceau de nourriture---------> /O
Le serveur peut également servir d'autres plats après avoir commandé Invité ------->E/S non bloquantes
Xiaofang aide sa mère faire le ménage. Elle doit faire : laver les vêtements dans la machine à laver (20 minutes), balayer le sol (10 minutes), ranger le bureau (10 minutes) et suspendre les vêtements (5 minutes). Pouvez-vous concevoir une nouvelle séquence intelligente et raisonnable afin que Xiaofang puisse terminer ces choses en au moins ( ) minutes ?
A.20
B.25
C.30
D.35
Vous ne vous y attendiez pas ? (En fait, je ne m'y attendais pas ~)
Dans ce processus, nous utilisons la machine à laver pour laver les vêtements = entrée, et sécher les vêtements = sortie Pendant que la machine à laver lave les vêtements, nous pouvons faire autre chose, donc. c'est E/S non bloquantesyo.
Pour comprendre les E/S non bloquantes, que devons-nous déterminer en premier ?
Créez d'abord un nouveau index.js, puis ouvrez notre vs-code frontal, ouvrez le terminal, exécutez <code>npm install glob
pour installer un package glob pour nous aider à observer plus facilement si les E/S sont bloquées. index.js
,再打开我们前端人的vs-code,打开终端,执行npm install glob
安装一个glob包,来帮我们更加方便去观察I/O是否阻塞。
先来看阻塞I/O
代码先贴上:index.js
const glob = require('glob'); var result = null; console.time('glob') result = glob.sync(__dirname + '/**/*') console.timeEnd('glob') console.log(result)
首先,先用require引入我们的glob包,接下来,用glob.sync去做一个打印目录的一个操作,将结果打印的同时,利用time/timeEnd,去记录时间,看node执行这个操作共花费多少时间。
在终端输入node index.js
Le code est collé en premier : index.js
const glob = require('glob'); var result = null; console.time('glob') glob(__dirname + '/**/*',function(err,res){ result = res; // console.log(result) console.log('got result'); }) console.timeEnd('glob') console.log('今天你卷了没?')
Tout d'abord, utilisez require pour présenter notre package glob. Ensuite, utilisez glob.sync pour en créer un. Une opération d'impression d'un répertoire Lors de l'impression du résultat, utilisez time/timeEnd pour enregistrer l'heure et voir combien de temps il faut au nœud pour effectuer cette opération.
Entrez node index.js
dans le terminal pour exécuter ce fichier directement
Regardez les E/S non bloquantes
Allez directement au code :
rrreeeIl n'y a pas d'absolu en tout. Cela ne veut pas dire que les E/S non bloquantes sont forcément bonnes. Prenons l'exemple d'un restaurant, si un accident survient parmi les serveurs, tous les convives devront attendre. pour ce serveur, ce qui affectera la qualité globale du restaurant (oui (entendu comme un crash du serveur)) ; blocage des E/S. Comme il y a plusieurs serveurs, un service individuel, même si l'un d'entre eux a un accident, cela n'affectera pas la qualité globale, et l'embauche de plusieurs serveurs coûtera également en conséquence.
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!