一般に、すべての非同期I / Oサブシステムの内部は異なりますが、現在の特定のケースでは、これらの具体的な非同期I / Oライブラリを使用して、可能な限り多くのプラットフォームをサポートしています。つまり:
- evport =Solaris 10
- epoll =Linux
- kqueue =OS X、FreeBSD
- 選択 =通常はすべてにインストールされます
fallback
としてのプラットフォーム
Evport
、Epoll
、およびKQueue
O(1)がある 記述子選択アルゴリズムの複雑さ、およびそれらはすべて内部カーネル空間メモリ構造を使用します。また、たくさんを提供できます (数十万)ファイル記述子。
他のものとは別に、select
1024までしか提供できません 記述子、および記述子のフルスキャンを実行するため(したがって、すべての記述子を繰り返して処理する記述子を選択するたびに)、複雑さは O(n) 。