Используют ли селекторы NIO уведомления о событиях по умолчанию?

Я нашел эту статью, в которой говорится, что OpenJDK использует epoll в Linux, но кто-нибудь знает, используют ли реализации Selector kqueue, dev/poll и т. д. вместо традиционных опросов, где они доступны?


person Chris Mowforth    schedule 27.10.2011    source источник


Ответы (1)


Да, это так. java.nio.channels.Selector.open() возвращает разные реализации в зависимости от вашей базовой операционной системы. Например. Если вы используете JRE от солнца/оракула, вы получите:

Windows 
sun.nio.ch.WindowsSelectorImpl

Mac OS 
sun.nio.ch.KQueueSelectorImpl

Linux 
sun.nio.ch.EPollSelectorImpl

Solaris
sun.nio.ch.PollSelectorImpl
person Schildmeijer    schedule 27.10.2011
comment
Обновление Java7: при этом: часть Windows довольно медленная по сравнению с собственным IOCP. Селектор Windows не может выбрать более 1024 каналов и поэтому работает довольно медленно... Используйте AIO, если это возможно, под Windows. - person Kr0e; 21.05.2014