恕我直言,阻塞IO通常是最简单的使用方法,除非您有特定的要求,而这又需要系统中的更多要求,否则您应该坚持最简单的选择。
下一个最简单的选择是阻止NIO,如果我想要比IO更高的效率或控制能力,我通常会更喜欢它。它仍然相对简单,但是允许您使用ByteBuffers。例如,ByteBuffers支持little
endian。
一个常见的选择是将非阻塞NIO与选择器一起使用。这种引入的许多复杂性可以通过诸如Netty或Mina之类的框架来处理。我建议您在 需要
非阻塞IO的情况下使用此类库,例如,因为每个服务器有数千个并发连接。恕我直言,您有成千上万个连接,除非每个连接所做的工作都很琐碎,否则应该考虑拥有更多服务器。AFAIK谷歌去更多的服务器而不是每个服务器数千个用户。
更为极端的选择是使用NIO2。它比非阻塞NIO更加复杂和冗长。我不知道有什么框架可以很好地支持这一点。即,实际上,这样做时速度更快。AFAIK如果您拥有Infiniband(这是设计要支持的功能),那么这似乎值得使用,但如果您具有以太网,则可能不值得使用。



