非阻塞IO仍然是服务器端Java的问题吗?

时间:2009-09-14 18:53:54

标签: java sockets tcp nonblocking

Java NIO Socket Framework据称隐藏了开发人员的非阻塞IO的脏细节,允许他们构建高度可扩展的应用程序,只需一个线程即可处理10000多个传入和传出套接字。

  • 对于典型版本的Java 2 SE / EE,非阻塞IO是否仍然很痛苦?

  • 这个框架是否仍然必要且有用?

感谢您的时间。

2 个答案:

答案 0 :(得分:3)

当然,NIO会对某些细节进行抽象。非阻塞IO仍然是一个让你头晕目眩的痛苦(至少,我发现它是),但至少它是可行的。 (我个人更喜欢.NET风格的异步IO,但这是另一回事。)

通常使用阻止IO:对于大多数任务,这就是我所需要的,并且使用非阻塞IO我不会获得显着的收益。在某些情况下(例如你提到的那个),如果你想让线程保持不变,非阻塞IO真的是唯一的前进方式。

我建议您了解它,使用它,然后使用判断来决定何时在生产代码中使用它。我不建议开始使用到处 ...

答案 1 :(得分:1)

是的,NIO非常有用。 NIO也有点难以使用。 根据您的需要,您可以考虑使用包装NIO的框架,例如grizzlymina。 Grizzly是来自 sun Oracle的glassfish appserver的网络部分。

Mina是Apache.org的网络应用程序框架。

我个人更喜欢灰熊,但那只是我。