https://javabetter.cn/nio/nio-better-io.html#_02、nio-和传统-io-在网络传输中的差异
IO模型、操作文件、网络传输方面
- 传统 I/O 采用阻塞式模型,线程在 I/O 操作期间无法执行其他任务。NIO 使用非阻塞模型,允许线程在等待 I/O 时执行其他任务,通过选择器(Selector)监控多个通道(Channel)上的 I/O 事件,提供性能和可伸缩性。
- 传统 I/O 使用基于字节流或字符流的类(如 FileInputStream、BufferedReader 等)进行文件读写。NIO 使用通道(Channel)和缓冲区(Buffer)进行文件操作,NIO 在性能上的优势并不大。
- 传统 I/O 使用 Socket 和 ServerSocket 进行网络传输,存在阻塞问题。NIO 提供了 SocketChannel 和 ServeSocketChannel,支持非阻塞网络传输,提高了并发处理能力。
问题来源:
https://www.nowcoder.com/discuss/465988680872652800?sourceSSR=search