select
--跨平台(windows ,linux都支持)
--每次都要从用户空间拷贝到内核空间
--遍历整个fd_set,O(n)
--最大可监听的fd数量不能超过FD_SETSIZE
poll
--基本类似于select,无FD_SETSIZE限制
epoll
--(缺点) windows不支持
--(特点)
-- 内核态 ,红黑树
-- 共享内存交互mmap
-- 不需要全部复制 , 返回双向链表
-- LT(level triggered) 事件没有处理,一直通知,epoll_wait
-- ET(edge-triggered)只通知一次,每当状态变化时,触发一个事件
iocp
-- Linux不支持
-- 内部实现了线程池