8

Node.js の王冠libuvがファイル操作のブロック システム コールを使用していることを知りました。非同期動作はスレッドで実装されています! これにより、2 つの疑問が生じます (私はUnixだけに関心があります)。

  1. ネットワークのようにノンブロッキング ファイルシステム コールを使用しないのはなぜですか?
  2. 未処理のファイル読み取りが 100 万回ある場合、おそらく 100 万個のスレッドを起動しません... libuv は何をしますか??
4

2 に答える 2

3
  1. O_NONBLOCK とその仲間は通常のファイルでは動作しないため、同じノンブロッキング API は使用できません! Linux では AIO を使用できますが、独自の癖があります (つまり、ファイルシステムに依存し、一部の操作ではサイレントにブロックします)。

  2. 何も思いつきません。

于 2013-11-18T07:02:51.523 に答える