3

我正在学习如何使用NIO写一个泥(我不排除高级库,但我也想学习低级操作)。

在我的阅读中,我了解了 NIO2。因为我已经在这个项目中使用了 Java 7,所以我想知道我用来编写单线程多路复用服务器的 NIO 操作是否不会在 NIO2 中被替换——也就是说,可能会变得更简单。据我所知,NIO2 的相关部分是它的异步类。但是,我没有足够的经验来知道这些是必要的还是只是我不一定需要的不同/新的抽象来代替基本的多路复用器。

4

2 回答 2

3

也许变得更简单了。

恕我直言,NIO2 比 NIO 更复杂,就像 NIO 比普通 IO 更复杂。

它支持异步 IO 调用,但这些调用更难有效使用。NIO 或普通 IO

如果您有 Inifiniband,NIO2 可以为您提供更低的延迟和更高的吞吐量。如果你有普通的以太网,我发现它没有太大的不同。

如果您想要简单,请使用普通 IO。

于 2013-01-29T21:31:54.733 回答
1

它是一种替代而不是替代,使用不同的编程模型。如果有的话,我不会说它明显更简单。如果您想要简单,请使用 java.net 和线程。

于 2013-01-30T03:22:03.093 回答