首页 > 技术文章 > 单线程+非阻塞IO的服务器设计

lxy-xf 2019-07-13 22:28 原文

1.为什么引入非阻塞IO+IO多路复用:

以accept为例:accept等待连接时,陷入阻塞,而在阻塞期间相当于服务器是没有在工作的。

以read为例:当当前处理的socket中已无数据,但对端的数据尚未到达时,此时调用read,陷入阻塞,而在阻塞期间如果有其他客户端发起请求,是无法连接到服务器的。

以write为例:当对端缓冲区已满,此时往socket中写数据,陷入阻塞,直到对端可以接受数据,而在这段时间一样会无视新请求的加入。

 

推荐阅读