Java NIO选择器是否默认使用事件通知?
我发现OpenJDK在linux上使用epoll,但是有人知道选择器实现是否使用kqueue、dev/poll等而不是传统的轮询吗?是的。java.nio.channels.Selector.open()根据底层操作系统返回不同的实现。例如,如果您使用sun/oracle的JRE,您将获得:Java NIO选择器是否默认使用事件通知?,java,events,nio,kqueue,Java,Events,Nio,Kqueue,我发现OpenJDK在linux上使用epoll,但是有人知道选择器实现是否使用kqueue、dev/poll等而不是传统的轮询吗?是的。java.nio.channels.Selector.open()根据底层操作系统返回不同的实现。例如,如果您使用sun/oracle的JRE,您将获得: Windows sun.nio.ch.WindowsSelectorImpl Mac OS sun.nio.ch.KQueueSelectorImpl Linux sun.nio.ch.EPoll
Windows
sun.nio.ch.WindowsSelectorImpl
Mac OS
sun.nio.ch.KQueueSelectorImpl
Linux
sun.nio.ch.EPollSelectorImpl
Solaris
sun.nio.ch.PollSelectorImpl
Java7更新:也就是说:与本机IOCP相比,windows部分速度非常慢。windows选择器不能选择超过1024个频道,因此速度非常慢。。。如果可能,在windows下使用AIO