Как работает Selector в Java NIO?

Middle
190 просмотров
AFK Offer AI

Selector.open() создаёт мультиплексор IO событий. Channel регистрируется в Selector с набором интересующих событий: OP_ACCEPT, OP_CONNECT, OP_READ, OP_WRITE. selector.select() блокирует (или select(timeout)) пока хоть один channel не готов. selectedKeys() возвращает готовые keys. Один поток в цикле обрабатывает события от тысяч каналов. Basis для всех high-performance Java серверов — nginx-подобная модель на Java.

Следующий вопрос

Что такое log4j2 async appenders и зачем они нужны?