NodeJS articles réels - E / S et la programmation asynchrone asynchrone

Première partie: I / O

1. bloquant I / O pour les concepts d'E / S non bloquant

1,1 blocage d'E / S (Synchronous E / S)

Si vous rencontrez un fil dans la mise en uvre de l'accès au disque ou les communications réseau (** désignés collectivement comme les opérations d'E / S **), prend généralement beaucoup de temps, le système d'exploitation sera privé du droit de contrôler le thread CPU, suspendu exécution, tandis que d'autres ressources donnent les threads de travail, cette planification de fil est appelé opération obstructive ** ** ** quand E / S ** est terminée, le système d'exploitation permet de bloquer ce fil ascenseur, restaurer son CPU le contrôle, afin qu'il continue à fonctionner. Cette I / O est en mode I synchrone normale ** / O (Synchronous I / O) ou le blocage d'E / S (Blocage I / O).

1.2 non bloquante E / S (entrées / sorties asynchrones)

E / S non-blocage est pour toutes les opérations d'E / S sans utiliser des tactiques de blocage ** ** Quand une rencontre de fil d'E / S, ** ** ne bloque pas attendre pour terminer, mais l'opération E / S est envoyé au système d'exploitation, passez à l'instruction suivante ** **, et d'autres systèmes d'exploitation pour terminer l'opération d'E / S à l'avenir, il enverra une notification ** effectue de fil des opérations d'E / S, le fil seront traitées à un moment spécifique sous la forme d'événements ** cet événement, qui est, le fil ne sera pas arrêter d'écouter le cycle de temps pour voir s'il y a des événements en cours, et donc le traitement.

Par exemple populaire:

(https://www.zhihu.com/question/19732473/answer/20851256)

`` `

Vous avez demandé à appeler le propriétaire de la librairie il n'y a pas de « systèmes distribués » Ce livre, si elle est `` mécanisme de communication synchrone, le propriétaire de la librairie dirais, vous attendez, « Je vais vérifier, »

Puis a commencé à vérifier vérifier ah, chèque et autre bon (probablement cinq secondes, il pourrait un jour) vous dire le résultat (résultat de retour).

`` Le mécanisme de communication asynchrone, le propriétaire de la librairie pour vous dire que je vérifie ah, bien appeler votre chèque, puis directement à raccrocher (ne retourne pas de résultat).

Ensuite, vérifiez bien, il prendra l'initiative de vous appeler. Ici, le rappel de patron à travers le de cette façon « retour d'appel ».

`` `

2. blocage d'E / S et I non bloquante / O Caractéristiques

Asynchronous programmation d'une seconde partie (programmation fonctionnelle)

Asynchronous I / O, il est lié à la programmation asynchrone.

syntaxe de programmation d'abord, synchrone lit un fichier:

* Créer readfilesync.js et exécution *

`` `

var fs = nécessitent ( 'fs');

données var = fs.readFileSync ( '/ Users / 51testing / Desktop / file.txt', 'utf-8');

console.log (données);

console.log ( 'fin.');

`` `

Imprimer les résultats sont les suivants:

`` `

// Effectuer

$ Noeud /Users/51testing/Desktop/readfilesync.js

tu vas bien

fin.

$

`` `

Le code ci-dessus est facile à comprendre, la mise en uvre de haut vers le bas, la pratique de la programmation asynchrone?

* Créer readfileasync.js et exécution *

`` `

var fs = nécessitent ( 'fs');

fs.readFile ( '/ Users / 51testing / Desktop / file.txt', 'utf-8', la fonction (err, data) {

si (err) {

console.error (err);

} Else {

console.log (données);

}

});

console.log ( 'fin.');

`` `

Imprimer les résultats sont les suivants:

`` `

// Effectuer

$ Noeud /Users/51testing/Desktop/readfileasync.js

fin.

tu vas bien

$

`` `

Le travail effectué en appelant juste au moment où fs.readFile `L'E / S asynchrone des requêtes au fonctionnement d'installation privée ensuite, ` Retour immédiatement `Et exécutez l'instruction suivante, après l'exécution de l'entrée événements moniteur de boucle d'événements .

Lorsque fs événement a reçu une demande d'E / S est terminée, la boucle d'événement ` appel actif `Fonction de rappel pour compléter le suivi. `Nous allons d'abord voir la fin. Ensuite, voir le contenu du fichier file.txt. `

La troisième partie du mécanisme du cycle Node.js

>  Node.js à quel moment ils entreront dans la boucle d'événement?

** cycle de vie: ** programme `Node.js par le début de l'anneau de boucle d'événements, à la fin de la boucle d'événements.

Toute la logique est fonction de rappel d'événement, il faut donc toujours boucle d'événements Node.js, la fonction de rappel d'entrée de programme est le premier événement de la boucle d'événements. événement de rappel lors de l'exécution, il peut émettre des requêtes d'E / S ou d'un événement de transmission directe (EMIT), l'exécution retourne après la fin de la boucle d'événements, les contrôles de boucle d'événement de l'événement, il y aura pas de processus de circulation jusqu'à ce que la fin du programme, .

Plus de contenu passionnant s'il vous plaît attention à "IT Alliance de combat" Oh ~ ~ ~

tri colline algorithme -OC de combat (b)
Précédent
Lei Jun et se livrer à des choses, à remettre en question le record du monde! Peut jouer concernant Dong Mingzhu Wuhan Matin
Prochain
Or Yongling (6) | a duré un an et a visité 24 villes, Chengdu Yongling Museum, l'interprétation du livre Cinq Dynasties et Dix États
Vente de biens immobiliers - Luke Shaw vendre leurs propres six chambres thème d'argent de maison
Architecture des articles réels (a) -Spring Boot + mybatis construction d'infrastructures
Italie centrale Experience Tour Première étape: Lazio Trouvées
Après plus de 80 petit hôtel trois mois zone cachée pourquoi presque disparu?
La Fondation Gates publie une lettre ouverte annuelle abordant des «questions difficiles» sur la pauvreté et les droits
KNW super petit guerrier: premier camp d'entraînement de course d'obstacles pour les enfants de la Chine, de sorte que plus d'enfants tombent en amour avec le mouvement de la science
star « trésor national » de l'Inde a dit, « assez solide Wuhan », mais aussi dit que les Chinois veulent faire un film
Le temps est beau Jinli route a les gens qui jouent ginkgos tas
Les cinq dernières minutes pour attacher le public sur la grande salle de conférence sur le football du campus aux enfants d'apprendre à ne pas abandonner
cafard recherche chinois jeunes scientifiques démarche, a développé une démarche de robot multi-pattes et modèle mouvement
chapitre de combat en direct iOS - les principaux concepts (a)