Node.js でノンブロッキング コードを実現する正しい方法
非同期プログラミングでは、ノンブロッキング関数により他のコードを同時に実行できます。完成を待たずに。ただし、以下の例のように、コードを Promise でラップするだけでは、真のノンブロッキングにはなりません。
function longRunningFunc(val, mod) { return new Promise((resolve, reject) => { sum = 0; for (var i = 0; i < 100000; i++) { for (var j = 0; j < val; j++) { sum += i + j % mod } } resolve(sum) }) }
コードを Promise でラップしているにもかかわらず、プログラムは印刷する前に待機します。コードがブロックされています。
非ブロッキング コードを理解する
Node.js、プレーンな JavaScript コードは本質的にブロックされており、単一スレッドで実行されます。 Promise や非同期 API でいくらラップしても、ノンブロッキングにすることはできません。ノンブロッキング動作を実現するには、コードの実行を外部スレッドにシフトする手法を利用するか、実験的な Node.js API をスレッドに採用する必要があります。
ノンブロッキング コードの実現
本物のノンブロッキング コードを作成する方法をいくつか紹介します。 Node.js:
ノンブロッキング技術を実装することで、Node.js アプリケーションは他のコードの実行を妨げることなく、長時間実行される操作を効果的に処理でき、その結果、応答性と同時実行性が向上します。
以上がNode.js で真にノンブロッキング コードを実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。