Skip to content

网络 I/O 与连接管理 ​

阻塞 I/O、非阻塞 I/O 与异步 I/O ​

阻塞调用等待结果。非阻塞调用在暂时无法推进时立即返回。异步 I/O 提交操作后可继续执行,通过完成通知获取结果。

可读就绪表示操作可能推进,完成事件表示已提交的操作有了结果。

I/O 多路复用(select、poll、epoll、kqueue) ​

多路复用让线程等待多个描述符。select 与 poll 通常传入描述符集合,epoll 和 kqueue 支持注册关注对象并返回事件。

边沿触发常需持续读写直到暂不可用。就绪通知之后仍应处理竞争和部分读写。

Reactor 与 Proactor 模型 ​

Reactor 在 I/O 就绪时分发,Proactor 在 I/O 完成后分发

两种模型都可使用回调,区别在于回调触发时 I/O 是否已经完成。

高并发连接管理与连接池 ​

连接池复用已建立连接,减少握手并限制上游并发。池通常需要管理空闲期限、失效连接、等待队列和背压。

池耗尽会引入排队延迟。多路复用协议还要考虑每条连接可用的并发流额度。

基于 MIT 许可发布