ホームページ > 記事 > ウェブフロントエンド > Node.js のノンブロッキング I/O の詳細な分析
この記事では、Node.js のノンブロッキング I/O について説明します。お役に立てば幸いです。
1. I/O: Input /output は、システムの入力と出力を指します
2. ノンブロッキングとブロッキングの主な違いは次のとおりです:入力を受信する間のプロセス結果を出力しています。引き続き他の入力を受信できますか? [推奨学習:「nodejs チュートリアル 」]
例:
例:外食に行く
外食には通常 2 つの方法があります:1 食堂に行って食事する: 食べ物を買うために列に並ぶ
2 レストランでの食事: レストランに食事をしに行くと、ウェイターが注文を完了します。食事の後は、次の人の注文のニーズに対応し続けます。食事の準備ができたら、食事が開始されます。ウェイターにとって、このプロセスはノンブロッキング プロセスです。
1 I/O 操作を実行する
システム2
システムが I/O 操作を実行している間、他の I/O を実行できますか?
サンプルコードでは、主に条件に一致するファイルを検索するために使用されるライブラリ glob を導入しました。 詳細については、https://www.npmjs.com/package/glob
最初に、glob が提供する同期メソッドを使用してファイルを読み取ります const glob = require("glob");
let result = null;
result = glob.sync(__dirname + "/**/*");
console.log(result);
結果は次のとおりです
:
この同期操作の実行時間を見てみましょう:
const glob = require("glob"); let result = null; console.time("glob"); result = glob.sync(__dirname + "/**/*"); console.timeEnd("glob");結果:
ファイルの読み取り操作によりプロセスが 33 ミリ秒ブロックされますが、これは容認できません。 次に、非同期メソッドを使用してファイルを読み取ります。
let result2 = null; console.time("glob2"); glob(__dirname + "/**/*", (err, res) => { console.log("glob over"); }); console.timeEnd("glob2");
結果:
非同期で実行します。ファイルの読み取りには合計 4 ミリ秒かかりましたが、ファイルを非同期で読み取りながら他の操作を実行することもできました。 結論プログラミング ビデオをご覧ください。 !
以上がNode.js のノンブロッキング I/O の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。