http://www.javashuo.com/article/p-cntwfxgr-eb.htmlhtml
- fd指文件描述符
- select
- 時間複雜度O(n)
- 無差異輪詢全部流,找出能讀出數據,或者寫入數據的流,對他們進行操做
- poll
- 時間複雜度O(n)
- poll本質上和select沒有區別,
- 它將用戶傳入的數組拷貝到內核空間,
- 可是它沒有最大鏈接數的限制,緣由是它是基於鏈表來存儲的.
- epoll
- 時間複雜度O(1)
- 能夠理解爲event poll
- epoll其實是事件驅動(每一個事件關聯上fd)的,
- 但select,poll,epoll本質上都是同步I/O,
- 由於他們都須要在讀寫事件就緒後本身負責進行讀寫,
- 也就是說這個讀寫過程是阻塞的,
- 而異步I/O則無需本身負責進行讀寫,異步I/O的實現會負責把數據從內核拷貝到用戶空間。
- AIO也是基於epoll,