Im Allgemeinen haben alle asynchronen E/A-Subsysteme unterschiedliche Interna, aber im aktuellen speziellen Fall werden diese konkreten asynchronen E/A-Bibliotheken verwendet, um so viele Plattformen wie möglich zu unterstützen. Das heißt:
- evportieren =Solaris 10
- epoll =Linux
- Einreihen =OS X, FreeBSD
- auswählen =normalerweise auf allen installiert Plattformen als
fallback
Evport
, Epoll
, und KQueue
haben O(1) Komplexität des Deskriptorauswahlalgorithmus, und sie alle verwenden interne Kernel-Space-Speicherstrukturen. Sie können auch viele servieren (Hunderttausende) Dateideskriptoren.
Abgesehen von den anderen select
kann nur bis zu 1024 bedienen Deskriptoren und führt einen vollständigen Scan der Deskriptoren durch (es werden also jedes Mal alle Deskriptoren durchlaufen, um einen auszuwählen, mit dem gearbeitet werden soll), sodass die Komplexität O(n) beträgt .