Heim > Web-Frontend > js-Tutorial > Ein genauerer Blick auf nicht blockierende E/A in Node.js

Ein genauerer Blick auf nicht blockierende E/A in Node.js

青灯夜游
Freigeben: 2021-07-16 09:35:31
nach vorne
1775 Leute haben es durchsucht

Ein genauerer Blick auf nicht blockierende E/A in Node.js

Apropos Node.js, Sie haben wahrscheinlich eine Menge schwindelerregender Eigennamen gehört

Über asynchrone, hauptsächlich Ereignisschleife und **nicht blockierende E/A, **offiziell, weil diese beiden Punkte ausmachen Node.js hohe Leistung.

Deshalb ist es wichtig, den asynchronen Mechanismus und die Verwendung von Node.js zu verstehen.

Was ist die nicht blockierende E/A von Node.js? Ausgabe

Der Unterschied zwischen blockierender E/A und nicht blockierender E/A liegt in der Zeit, die das System benötigt, um Eingaben und dann Ausgaben zu empfangen, und ob es andere Eingaben empfangen kann
  • Beispiel für die Warteschlange für Mahlzeiten

Blockierende E/A Der Unterschied zwischen

und nicht blockierenden E/A liegt in der Zeit, die das System benötigt, um Eingaben und dann Ausgaben zu empfangen, und ob es andere Eingaben empfangen kann Ein genauerer Blick auf nicht blockierende E/A in Node.js

Für Kunden /Bestellpersonal

  • Das Anstehen, um Essen zu bestellen, blockiert die E/A (die Kunden hinten müssen warten, bis die Kunden vorne das Essen erhalten, bevor sie es erhalten können)

    Die Restaurantbestellung blockiert die E/A nicht (Da das Restaurant viele Kellner hat, können andere, während andere bestellen, auch selbst bestellen)
    • Vergleichen Sie die Cafeteria-Tante und den Kellner mit einem Softwaresystem
  • Die Cafeteria-Tante kann Mahlzeiten nur einzeln zubereiten -> I/O blockieren

    Der Kellner kann nach der Bestellung andere Gäste bedienen -> nodejs-Tutorial
      "]
    • Beispiele für Fragen, die darauf warten, gelöst zu werden
  • Zum Beispiel: Ein Entwickler im Forum Es wurde eine Frage gestellt zu: „Wie kann ich dieses Node.js-Problem lösen, ich warte dringend?“ .
  • Die Situation beim Blockieren von E/A ist-> Er wartet ständig darauf, dass andere Leute antworten, und wenn andere Leute antworten, wird er es erneut tun. Andere Dinge.

  • Die Situation der nicht blockierenden E/A ist-> Er geht anderen Dingen nach und kommt nach einer Weile zurück, um die Antwort zu sehen
  • Beispiel für Hausarbeit

Xiaofang muss die folgenden Dinge tun Hausarbeit:

Wäsche in der Waschmaschine waschen (20 Minuten)

Boden fegen (10 Minuten)

Schreibtisch aufräumen (10 Minuten)

Kleidung aufhängen (10 Minuten)

Bitte entwerfen Sie eine clevere und angemessene Reihenfolge, um die Anzahl der Blumen zu minimieren. Zeit, um diese Dinge zu erledigen. A: 20 Minuten

D: 35 Minuten /O ausgeführt werden

Verstehen Sie die Blockierung aus dem Code-E/A

    const glob = require("glob");
    
    var result = null;
    console.time("glob");
    // 获取目下的文件和文件名
    result = glob.sync(__dirname + "/**/*");
    console.timeEnd("glob");
    console.log(result);
    Nach dem Login kopieren
  • druckt die folgenden Ergebnisse aus
  • Es ist ersichtlich, dass
  • erforderlich ist, um das Ergebnis zu erhalten
Aus dem obigen Code ist es Daraus kann geschlossen werden, dass

    blockierende E/A eine Wartezeit hat. Während der Ausführung können keine anderen Dinge ausgeführt werden.
  • Verstehen Sie nicht blockierende E/A aus dem Code Aus dem obigen Code kann geschlossen werden, dass nicht blockierende E/A die Wartezeit verkürzt und Sie während des Ausführungsprozesses auch andere Dinge ausführen können. !

Das obige ist der detaillierte Inhalt vonEin genauerer Blick auf nicht blockierende E/A in Node.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:juejin.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage