2016-12-15 3 views
0

ノードJSもlibuvのI/Oスレッドを使用してIOを実行する場合、そのスレッドは単純なI/Oの要求を受け取ったときにIISによって作成されたスレッドとどう違うのですか?ノードJS I/Oスレッド

+1

[こちら](http://stackoverflow.com/questions/10680601/nodejs-event-loop)と[こちら](https://www.quora.com/In-Node-js-how-does)イベントループワーク)。それは助けることができる。 –

答えて

2
  • Node.jsはI/O用に別のスレッドを使用しません。これは、多くのタスク間で単一のスレッドを多重化します。

  • 高レベルでは、I/Oは2:n/w IOとディスクIOに分かれています。前者はカーネルレベルでバッファリング機構を備えていますが、node.jsは完全非同期モデルでIOを管理します。すなわち、カーネルバッファが完全にノンブロッキングモードで操作を往復する準備ができているときにデータが処理されます。ディスクIOにはまだブロックシーケンスが含まれているので、ndoe.jsはlibuvワーカースレッドを使用して非同期IOをシミュレートします。どちらの方法でも、どこにでもブロックコードはありません。

  • libuvスレッドは事前に作成され固定されているため、それらを使用するためのランタイムオーバーヘッドはありません。

希望します。

+0

ありがとうGireesh! – Bharath