Есть ли эквивалент epoll в Java ?

Есть ли в Java эквивалент Linux epoll?

epoll позволяет потоку реагировать на ряд гетерогенных событий. Например, у меня может быть поток, который реагирует либо на событие сокета, либо на ввод с консоли. В С++ я могу реализовать это, зарегистрировав stdio и сокет с помощью epoll. Мой поток будет вызван событием из этих файлов.

Есть ли подобное средство в Java? Я посмотрел пакет nio, он позволяет мне зарегистрировать несколько сокетов с помощью селектора. Но там вроде не прочь прописать консоль/стандартный ио с селектором. Я что-то не вижу? Есть ли другой способ сделать это?

О «почему»: я хочу написать программу, которая общается через сокеты, и я хочу управлять этой программой, вводя команды из консоли. Я знаю, как это можно сделать, разделив консольный ввод и связь с разными потоками, но мне любопытно, есть ли способ сделать это в одном потоке.

Спасибо. дф

20
задан dfreit 16 May 2012 в 15:50
поделиться