java - 异步 I/O 的主要用例是什么

标签 java performance asynchronous

我的应用程序不是基于 Web 的,只需要使用套接字来为大约 1000 个客户端提供服务。吞吐量和延迟对我来说至关重要。目前正在使用 NIO 的 select(),但正在考虑转向 NIO.2 中的异步 IO。

  1. 什么时候应该使用异步 I/O?
  2. 异步 I/O 的主要用例是什么?

最佳答案

如果您使用的是 Infiniband 网络,我建议您查看异步 IO。

Comparing Java 7 Async NIO with NIO.

但是,如果您使用的是普通以太网,则速度可能会变慢。编码比使用非阻塞 IO 更复杂,而使用非阻塞 IO 比使用阻塞 IO 更复杂。

如果延迟非常重要,我建议您考虑使用像 Solarflare 这样的内核旁路网络适配器。但是,如果您可以接受 100 微秒的延迟,则您不太可能需要它。

关于java - 异步 I/O 的主要用例是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7511434/

相关文章:

c# - 引用 5MB .Net 程序集是否有任何性能注意事项?

java - @Async API 端点 Spring Webflux

java - 如果另一个程序更新数据库,hibernate 不会更新 id

java - Java代码中的Activiti工作流调用

java - 使用 SimpleDateFormat 获得不一致的结果

Python:并行化任何/所有语句

performance - redis哈希性能如何

.net - 为什么TaskFactory.StartNew Task没有立即启动?

javascript - 使用 async await 时,如何指定回调?

java - 如果输入键盘代码则 while 循环中断