我的理解是,在足够新的Linux版本上,默认选择器是使用epoll实现的类,而在较旧的版本上(较旧的内核?我不确定),使用了使用select或基于轮询的实现的类。
根据文档,还可以设置java.nio.channels.spi.SelectorProvider属性来覆盖默认的选择器类。
是否可以通过将属性设置为所提供(但非默认)类的名称来强制非epoll实现?标准java库中提供了哪些类来充当选择器?
最终的程序是否能跨平台工作并不重要。这仅仅是为了在受控环境中比较两种实现之间的性能。
我的理解是,在足够新的Linux版本上,默认选择器是使用epoll实现的类,而在较旧的版本上(较旧的内核?我不确定),使用了使用select或基于轮询的实现的类。
根据文档,还可以设置java.nio.channels.spi.SelectorProvider属性来覆盖默认的选择器类。
是否可以通过将属性设置为所提供(但非默认)类的名称来强制非epoll实现?标准java库中提供了哪些类来充当选择器?
最终的程序是否能跨平台工作并不重要。这仅仅是为了在受控环境中比较两种实现之间的性能。