Есть ли эквивалент Linux epoll в Java?
epoll позволяет потоку реагировать на ряд гетерогенных событий. Например, у меня может быть поток, который реагирует либо на событие сокета, либо на вход с консоли. В С++ я могу реализовать это, зарегистрировав stdio и сокет с epoll. Мой поток будет вызван событием из любого из них.
Есть ли аналогичное средство в Java? Я посмотрел на пакет nio, он позволяет мне регистрировать несколько сокетов с помощью селектора. Но, похоже, не было места для регистрации консоли/стандартного io с помощью селектора. Я что-то не вижу? Есть ли другой способ сделать это?
В "почему": я хочу написать программу, которая обменивается через сокеты, и я хочу управлять этой программой, введя команды с консоли. Я знаю, как это можно сделать, отделяя ввод консоли и сообщения от разных потоков, но мне интересно, есть ли способ сделать это в одном потоке.
Спасибо. DF