首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java NIO适用于低延迟还是高吞吐量?

Java NIO适用于低延迟还是高吞吐量?
EN

Stack Overflow用户
提问于 2014-01-20 07:30:44
回答 2查看 1.8K关注 0票数 6

我是Java NIO的新手,也用过一点。我有一个一般性的疑问。如果您正在设计一个超低延迟应用程序与高吞吐量应用程序,那么使用非阻塞IO,这两个应用程序中的哪一个会明显受益?

我的理解是,非阻塞IO肯定有助于提高吞吐量,因为工作线程不会阻塞,因此不会等待响应,并且可以自由地触发新的请求,直到之前的请求得到服务。一旦我们得到以前触发的请求的响应,工作线程就可以异步处理它们,从而增加吞吐量。

但是,我无法看到非阻塞IO如何直接为低延迟应用程序带来好处。

我猜“异步行为是避免争用的一种很好的方法。”如果是这样的话,低争用意味着低延迟。因此,NIO可能有助于降低延迟。这有意义吗?

EN

回答 2

Stack Overflow用户

发布于 2014-02-12 03:45:13

“异步行为是避免争用的好方法。”--仅当使用单线程时。如果有很多线程,争用是不可避免的。您必须使用多线程(带或不带NIO)来获得高吞吐量和/或低延迟。

NIO只有助于保持较低的线程数量(大约是可用处理器的数量),从而节省内存(每个线程消耗大量内存),并允许大量的并发连接,但通常比阻塞IO的性能更差。

票数 2
EN

Stack Overflow用户

发布于 2014-03-05 07:09:21

这完全取决于..。:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21224073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档