Gibt es in Java ein Äquivalent von Linux epoll?Gibt es in Java ein ePoll-Äquivalent?
Mit epoll kann ein Thread auf eine Reihe von heterogenen Ereignissen reagieren. Zum Beispiel kann ich einen Thread haben, der entweder auf ein Socket-Ereignis oder eine Eingabe von der Konsole reagiert. In C++ kann ich dies implementieren, indem ich stdio und den Socket mit epoll registriere. Mein Thread wird von einem Event ausgelöst, wenn dies der Fall ist.
Gibt es eine ähnliche Einrichtung in Java? Ich habe mir das nio-Paket angeschaut, es erlaubt mir eine Anzahl von Sockets mit einem Selektor zu registrieren. Aber es scheint nicht weg zu sein, die Konsole/Standard io mit einem Selektor zu registrieren. Sehe ich nicht etwas? Gibt es einen anderen Weg, dies zu tun?
Auf dem "warum": Ich möchte ein Programm schreiben, das über Sockets kommuniziert, und ich möchte dieses Programm durch Eingabe von Befehlen aus der Konsole fahren. Ich weiß, wie dies erreicht werden kann, indem man die Konsoleneingabe und die Kommunikation mit verschiedenen Threads trennt, aber ich bin neugierig, ob es einen Weg gibt, dies in einem einzigen Thread zu tun.
Danke. df
Können Sie einen Schritt zurück und bearbeiten Sie Ihre Post erklären _why_ Sie dies tun wollen? – Gray
OK, ich habe den Beitrag aktualisiert. – dfreit
Ich vermute, Standard 'Konsole Eingabe' wäre wahrscheinlich 'System.in' (obwohl Sie die Referenz injizieren sollten, nicht hart-Code die Verwendung). Es sieht jedoch nicht so aus, als würde es Ereignisse erzeugen (zB - es gibt keine 'register()' oder ähnliche Methode), also glaube ich nicht, dass es ein Standardverhalten wie gewünscht gibt. Sie müssten etwas schreiben (oder finden), um dieses Verhalten zu ermöglichen. –