まず、libuv
libeio
を削除しました それから。ただし、libeio
のようなスレッド プールで非同期ファイル I/O を実行します。 あなたが言った通りです。
libuv
libev
も削除します . epoll
など、さまざまなプラットフォームの非同期 I/O インターフェイスに基づいて、非同期ネットワーク I/O を実行します。 、 kqueue
と IOCP
、スレッドプールなし。 uv
のメイン スレッドで実行されるイベント ループがあります。 I/O イベントをポーリングして処理します。
libuv
内のスレッド プール 固定サイズのスレッドプールです (システムのような uinx では 4)。タスク キューの役割を果たし、要求が増加したときに無限にスレッドを生成することで、システム リソースの枯渇を回避します。
バージョン 0.6 ノードまで libev
を使用 イベントループと libeio
を実行する 非同期 I/O 用 (Unix バックエンドはこれら 2 つのライブラリに大きく依存しています)。しかし libuv
libev
の置き換えを開始しました と libeio
バージョン 0.8 で。イベント プール内のすべての io およびイベントを実行、維持、および管理します。 libuv
クロスプラットフォームの非同期 IO ライブラリの選択肢です。
はい、でも libev
スレッドプールを使用しません。こちらをご覧ください
明確化:私が投稿した質問のリンクによると、 libeio
I/O (ソケットを含む) を扱うすべての POSIX 関数をサポートします。しかし、ノード作成者は非同期ファイル I/O のみに使用することに決め、libev
を使用します。 ネットワーク I/O 用。どこから聞いたのかわかりませんが、通常のファイルで epoll を使用できます。
libev
イベント ループを使用するため、ここでは問題ありません。
libev
と libeio
Linux 環境用であり、すべてのカーネルにイベント ループ/非同期 IO を提供します (select、poll、epoll、kqueue をサポート)。更新に関する質問:
<オール>libuv
についてよく知らない これがWindows 8での私の発見であり、Process Explorerで確認しました。ノード アプリケーション プロセスの 4 つのスレッド、1 つの DLL、1 つのファイル、および 1 つのセクション (合計 7 エントリ) を示しました。
ps -eLf
ps -eLf | grep x
のようなノード プロセス pid を探してください。 ここで、x はノード プロセスの pid です。