3

node-fibersを使用して、非同期データベース操作など、Node.js で I/O 集中型タスクを実行すると、ブロックされますか?

私はまだ node-fibers を使用していません。b/c のようです -- 通常は非ブロッキングの長い I/O コードが実行される HTTP リクエストを処理するコードで使用すると、他のリクエストがアプリにアクセスします。これは本当ですか?true/false である理由についての詳細も非常に役立ちます。

4

1 に答える 1

1

ファイバーを使用すると、プログラマーは「スレッドのような」ブロッキング ステートメントの JavaScript コードを記述できます。ただし、実装はブロックされていません。コードは node.js 非同期イベント コードと同等です。Laverdets の実装は、非同期 node.js モデルと同様に、ある時点でファイバーの実行を一時停止し、後で再開できます。

ファイバーはシンタックス シュガーのようなものであり、node.js 非同期モデルを変更しません。唯一の違いは、ファイバーが異なる実行スタックを作成していることです (私が正しければ)。これは、通常の nodejs 非同期コードに対するわずかなオーバーヘッドです。

于 2012-07-28T11:43:22.173 に答える