我已经决定不使用异步非阻塞Java NIO。总的来说,它的复杂性与好处相比存在很大的疑问,并且我认为在这个项目中并不值得。
但是,我读到的大部分关于NIO的内容及其与早期java.io.*的比较都集中在非阻塞异步NIO与使用java.io.* 的每个连接一个线程的同步I/O之间的对比上。然而,NIO也可以在同步、阻塞和每个连接一个线程的模式下使用,这似乎很少被讨论。
问题在于:同步、阻塞的NIO与传统的同步、阻塞I/O(java.io.*)是否有性能优势?两者都会采用每个连接一个线程的方式。它们的复杂性如何相比?
请注意,这是一个一般性的问题,但目前我主要关心TCP套接字通信。