单线程+非阻塞IO的服务器设计

mac2022-06-30  22

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

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

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

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

 

转载于:https://www.cnblogs.com/lxy-xf/p/11182386.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)