Do NIO selectors use event notifications by default?

I found this article saying OpenJDK uses epoll on linux, but does anybody know if Selector implementations use kqueue, dev/poll etc over traditional polling where available?

Answer

Yes it does. java.nio.channels.Selector.open() returns different implementations depending on your underlying operating system. Eg. If you are using a JRE from sun/oracle you will get:

Windows 
sun.nio.ch.WindowsSelectorImpl

Mac OS 
sun.nio.ch.KQueueSelectorImpl

Linux 
sun.nio.ch.EPollSelectorImpl

Solaris
sun.nio.ch.PollSelectorImpl

Leave a Reply

Your email address will not be published. Required fields are marked *