为什么要定制NIO Selector Provider?

时间:2011-03-10 14:06:17

标签: java selector nio

有谁知道为什么我们需要java NIO中的自定义选择器提供程序。有没有人使用过自定义选择器提供程序,为什么要这样做?

3 个答案:

答案 0 :(得分:4)

我写了一个提供SSLSocketChannels和SSLServerSocketChannels(以及SSLSelectors ...)。我也可以想象写一个提供代理,因为java.nio中根本不支持java.net.Proxy等。

答案 1 :(得分:2)

模拟实施。

对使用NIO的代码编写单元测试非常有用。否则,模拟各种网络故障可能会很棘手。

答案 2 :(得分:0)

在撰写本文时,JDK 16(早期访问)为epollpoll提供了SelectorProviders。 Linux内核5.1+提供了io_uring,它比epoll具有更高的性能和灵活性。

能够通过系统属性或ServiceLoader使用自定义的SelectorProvider,即使在旧的JVM上也可以使用io_uring。

到目前为止,我还找不到任何开源实现!