1
NodeJSはどのようにして「ノンブロッキング」にできますか?
私はNodeJSを学んでおり、何かを明確にしたかっただけです。これまでのいくつかの入門チュートリアルと本では、非常に早い段階でNodeの「ノンブロッキング」アーキテクチャについて説明しました。 したがって、たとえば、この例は、データベースからデータを取得する非同期的な方法を読んでいる本で提供されました。 http.createServer(function (req, res) { database.getInformation(function (data) { res.writeHead(200); res.end(data); }); }); (私が理解しているように)起こることは、Nodeがデータベースへの呼び出しを行い、次に呼び出しスタックの次のものを処理し続けることです。データベースリクエストが完了すると、匿名コールバック関数のデータ変数が設定され、その関数がコールスタックに追加されます(その後、ノードがそれに到達したときに実行されます)。 私の質問は、データベース要求を正確に処理しているのは何ですか?確かにNodeはブロックしなければなりませんか?データベース要求を処理しているのは何ですか?または、Nodeが外部リソースへの非同期HTTP GETリクエストを待機している場合、Nodeがコールスタックの処理を継続して「非ブロッキング」になることを可能にするリクエストを処理しているのは何ですか?