java - 选择器最多可以选择多少个 channel ?

标签 java sockets nio

我想知道一个选择器最多可以处理多少个 channel ?我熟悉常见的 I/O 算法,但我不知道在 NIO 中我是否可以使用选择器来处理(例如)10000 个套接字。是否应该使用多个线程并在每个线程中有一个选择器来处理特定数量的套接字?

虽然我找到了this ,它没有解决这个具体问题。

最佳答案

除了套接字描述符的数量外没有限制。一些平台有潜在的限制,但 NIO 通过每个 Selector.

多个操作系统选择器来解决这些问题

Java 1.4.1 之前有一个限制,但它早已不复存在。

Should use a number of threads and have a selector in each for handling a specific number of sockets?

这是可能的,但我真的不明白你为什么要这么做。也许同行可能会以这种方式获得更多定期服务,这取决于您的代码与每个请求的关系。

关于java - 选择器最多可以选择多少个 channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34274602/

相关文章:

java - 原子移动和同时运行它的许多进程

java - 如何删除Windows上的临时文件?

java - 使用 Singleton 与扩展 Application 类

java - Hibernate 访问类属性不会加载真正的 Hibernate 对象

java - 如何限制 Jenkins 子进程?

Java - 2D 数组操作正在影响索引的逆

java - Android 多线程

node.js - 带有Socket.IO的Google App Engine/计算引擎

c++ - 在套接字之间发送消息

java - 使用 java.nio 在文件更改时引发创建/移动/删除事件