2016-06-30 3 views
1

nodejsがlibuvを使って非同期入出力を実行する方法を読んでいます。もっと詳しく読むと、select(2)とepollのやり方と似た感じがします。libuvはepollを使用しているか、unixのselect(2)を使用しています

私がlibuv(ノード経由で)を使用している場合、私の質問は内部的にはselect(2)またはepollを使用していることです。

libuvはunix上のselect(2)とepollシステムコールのラッパーですか?

+1

あなたは[機能のハイライトを読む](https://github.com/libuv/libuv#feature-highlights)でしたか? – robertklep

答えて

5

libuvは、Linuxのepoll、macOSとBSDのkqueue、SunOSの/ dev/pollなど、最もパフォーマンスの高いポーリングメカニズムを使用しています.1つの興味深いトリックlibuvはスレッドでselect()いくつかのfds kqueueは処理できません。私はここでそれについていくつかの詳細を述べました:http://code.saghul.net/index.php/2016/05/24/libuv-internals-the-osx-select2-trick/

+0

ブログはかなり有益だった。 – Noobie

+0

ノードfsでは、これらのx-platformの "select"または "poll"メソッドを公開する必要があります。 – ShrekOverflow

+0

それが大部分のユーザーにどのように役立つのかわかりません。 – saghul

関連する問題