天天看点

常用的高并发网络模型

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不支持

-- 内部实现了线程池

继续阅读