gpt4 book ai didi

Java NIO 适合低延迟还是高吞吐量?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:25:41 24 4
gpt4 key购买 nike

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

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

但是,我看不出非阻塞 IO 如何直接有利于低延迟应用程序。

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

最佳答案

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

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

关于Java NIO 适合低延迟还是高吞吐量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21224073/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com