I allmänhet har alla Async I/O-undersystem olika interna delar, men i aktuellt specifika fall används dessa konkreta Async I/O-libs för att stödja så många plattformar som möjligt. Det vill säga:
- evport =Solaris 10
- epoll =Linux
- kqueue =OS X, FreeBSD
- välj =vanligtvis installerat på alla plattformar som en
fallback
Evport
, Epoll
och KQueue
har O(1) komplexitet för deskriptorurvalsalgoritm, och de använder alla interna kärnutrymmesminnesstrukturer. De kan också tjäna massor (hundratusentals) filbeskrivningar.
Bortsett från de andra, select
kan bara visa upp till 1024 deskriptorer och gör en fullständig genomsökning av deskriptorer (så varje gång den itererar alla deskriptorer för att välja en att arbeta med), så komplexiteten är O(n) .