Nhìn chung, tất cả các hệ thống con Async I / O đều có các nội dung bên trong khác nhau, nhưng trong trường hợp cụ thể hiện tại, các libs I / O không đồng bộ cụ thể này được sử dụng để hỗ trợ nhiều nền tảng nhất có thể. Đó là:
- evport =Solaris 10
- kỷ nguyên =Linux
- kqueue =OS X, FreeBSD
- chọn =thường được cài đặt trên tất cả nền tảng dưới dạng
fallback
Evport
, Epoll
và KQueue
có O (1) độ phức tạp của thuật toán lựa chọn bộ mô tả và tất cả chúng đều sử dụng cấu trúc bộ nhớ không gian hạt nhân bên trong. Ngoài ra, họ có thể phục vụ rất nhiều (hàng trăm nghìn) bộ mô tả tệp.
Ngoài những cái khác, select
chỉ có thể phân phát tối đa 1024 bộ mô tả và quét toàn bộ các bộ mô tả (vì vậy mỗi khi nó lặp lại tất cả các bộ mô tả để chọn một bộ mô tả để làm việc với), do đó, độ phức tạp là O (n) .