1.为什么引入非阻塞IO+IO多路复用:
以accept为例:accept等待连接时,陷入阻塞,而在阻塞期间相当于服务器是没有在工作的。
以read为例:当当前处理的socket中已无数据,但对端的数据尚未到达时,此时调用read,陷入阻塞,而在阻塞期间如果有其他客户端发起请求,是无法连接到服务器的。
以write为例:当对端缓冲区已满,此时往socket中写数据,陷入阻塞,直到对端可以接受数据,而在这段时间一样会无视新请求的加入。