我正在编写多线程套接字服务器。我使用 nio 的 ServerSocketChannel
来接受连接。然后我正在使用 bufferedreader
和 print writer 读取和写入(在单独的线程中)到 socketChannel
。
问题是 PrintWriter
锁定并等待 flush()
命令。它会阻塞线程,直到 BufferedReader
接收到数据。
最佳答案
这表明接收器读取速度慢。这就是阻塞 I/O 的工作原理。如果您想要非阻塞 I/O,那么您已经完成了部分工作,因为您已经在使用 NIO。尽管我真的完全看不出在阻塞模式下使用 NIO 有什么意义。
关于java - PrintWriter 等待 flush(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5060138/