1

我发现这篇文章说 OpenJDK 在 linux 上使用 epoll,但是有人知道 Selector 实现是否使用 kqueue、dev/poll 等而不是可用的传统轮询?

4

1 回答 1

4

是的,它确实。java.nio.channels.Selector.open() 根据您的底层操作系统返回不同的实现。例如。如果您使用来自 sun/oracle 的 JRE,您将获得:

Windows 
sun.nio.ch.WindowsSelectorImpl

Mac OS 
sun.nio.ch.KQueueSelectorImpl

Linux 
sun.nio.ch.EPollSelectorImpl

Solaris
sun.nio.ch.PollSelectorImpl
于 2011-10-27T13:19:55.003 回答