有哪些Java Selector类可用?

时间:2015-02-03 23:57:55

标签: java nio epoll

我的理解是,在Linux的最新版本中,默认选择器是一个使用epoll实现的类,而在旧版本(旧内核?我不确定),使用select或poll-的类使用基于实现。

根据文档,也可以设置java.nio.channels.spi.SelectorProvider属性来覆盖默认的选择器类。

是否可以通过将属性设置为提供的(但非默认的)类的名称来强制执行非epoll实现? 哪些类作为标准java库的一部分提供,可以充当选择器?

最终的计划在跨平台上运作并不重要。这仅用于比较受控环境中两种实现之间的性能。

1 个答案:

答案 0 :(得分:0)

每个JRE只有一个Selector实现。您无法组合或替换它们,除非您自己编写,然后您无法使用默认提供商的SocketChannels,因此您可以同样实现这些,ServerSocketChannels等。