回一楼,多路复用阻塞就是io请求阶段只有select线程阻塞,而不是每个连接都阻塞,当然read时候work也是阻塞的,如果read交给内核做,做完通知用户那就是异步io,epoll其实也有阻塞,只是epoll通过树存句柄并设置回调函数,accept时候回调函数会把就绪的句柄加入就绪队列,epoll只需要轮训就绪队列不需要像select一样轮训所有连接。这个轮询的线程是阻塞,这是io多路复用的特点,read操作是阻塞的,这是同步io的特点。第一次回复,希望是讲清楚了