为什么我应该使用 NIO(或像 netty 这样的框架)而不是 java 执行器



就在最近,我了解了蔚来汽车。我的理解是,由于蔚来汽车的非阻塞功能,我们只需要一个(或几个)线程就可以处理许多连接。但是我们不能使用执行器并拥有工作线程列表来实现这一目标吗?

我看不出蔚来汽车比执行者有任何优势。相反,我认为执行器比使用 NIO 更好,因为读取消息非常容易,例如我们只需要调用 readLin(),但在 NIO 中我们应该检查消息是部分的还是缓冲区包含多条消息。

非阻塞的特性也存在于执行器的灵魂中,我们调用执行器的执行函数,我们基本上是将连接添加到缓冲区并等待固定数量的线程空闲。

那么,为什么有人会使用NIO而不是使用执行器呢?

谢谢

多线程与NIO一样快(甚至更快),直到遇到可扩展性问题。线程过多会使性能低于 NIO。

但在某些情况下,有人说多线程阻塞IO仍然比NIO:http://paultyma.blogspot.com/2008/03/writing-java-multithreaded-servers更好.html

相关内容

  • 没有找到相关文章

最新更新