非同期データベース操作など、Node.jsでI / O集中タスクを実行する場合、 ノードファイバー、ブロッキングですか?
私はまだノードファイバーを使用していないので、b / c-通常は非ブロッキングの長いI / Oコードが実行されるHTTPリクエストを処理するコードで使用すると、他のリクエストがアプリにアクセスできなくなります。これは本当ですか?なぜそれがtrue / falseであるかについての詳細も非常に役立ちます。
回答:
回答№1は1ファイバーを使用すると、プログラマーは「スレッドのように」書くことができますブロッキングステートメントJavaScriptコード。しかし、その実装はブロッキングではなく、コードはnode.js非同期イベントコードと同等です。Laverdets実装は、非同期node.jsモデルのように、ある時点でファイバーの実行を一時停止し、後で再開できます。
繊維はより多くの構文糖質であり、そうではありませんnode.js非同期モデルを変更します。唯一の違いは、ファイバーが異なる実行スタックを作成することです(私が正しい場合)。これは、通常のnodejs非同期コードのわずかなオーバーヘッドです。