https://github.com/hansiming/HttpServerByJavaNIO/blob/02c6f5026fb15473da73f7a7cad1009f95ab050c/src/com/cszjo/com/http/server/Server.java#L106 isReadable,isWritable分别代表可读、可写,而不是发生了读事件、写事件。 作者在isReadable里做了写操作,如果此时isWritable为false,也就是不可写,线程依然会阻塞。这样NIO就毫无意义了。 正确的做法是isReadable里读取内容,读取完毕后注册write监听,在isWritable时将响应返回给客户端。