Maison  >  Article  >  interface Web  >  Une analyse approfondie des E/S non bloquantes dans Node.js

Une analyse approfondie des E/S non bloquantes dans Node.js

青灯夜游
青灯夜游avant
2021-11-03 09:59:031803parcourir

Cet article vous présentera les E/S non bloquantes dans Node.js J'espère qu'il vous sera utile !

Une analyse approfondie des E/S non bloquantes dans Node.js

Comment comprendre les E/S non bloquantes de NodeJs

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.

  • 2

    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);
  • Le résultat est un
tableau de fichiers

 :

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 fichier

Une analyse approfondie des E/S non bloquantes dans Node.js

    let 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. Une analyse approfondie des E/S non bloquantes dans Node.js

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 : Une analyse approfondie des E/S non bloquantes dans Node.jsVidé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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer