Czy istnieje odpowiednik epolu linuksowego w Javie?Czy w języku Java istnieje odpowiednik epollu?
Epoll pozwala wątkowi reagować na szereg heterogenicznych zdarzeń. Na przykład, mogę mieć wątek, który reaguje na zdarzenie socket lub dane wejściowe z konsoli. W C++ mogę to zaimplementować, rejestrując stdio i gniazdo za pomocą epola. Mój wątek zostanie wywołany przez zdarzenie z któregokolwiek z nich.
Czy jest podobny obiekt w Javie? Spojrzałem na pakiet nio, który pozwala mi zarejestrować kilka gniazd za pomocą selektora. Ale wydaje się, że nie ma tam miejsca, aby zarejestrować konsolę/standard io za pomocą selektora. Czy czegoś nie widzę? Czy jest inny sposób na zrobienie tego?
Na temat "dlaczego": Chcę napisać program, który komunikuje się za pośrednictwem gniazd, i chcę sterować tym programem, wprowadzając polecenia z konsoli. Wiem, jak można tego dokonać, oddzielając dane wejściowe konsoli i komunikaty od różnych wątków, ale jestem ciekawy, czy istnieje sposób, aby to zrobić w pojedynczym wątku.
Dzięki. df
można zrobić krok do tyłu i edytować swój post wyjaśnić _why_ chcesz to zrobić? – Gray
OK, zaktualizowałem post. – dfreit
Domyślam się, że standardowe "wejście konsoli" prawdopodobnie będzie "System.in" (chociaż należy wstrzyknąć referencję, a nie używać twardego kodu). Jednak nie wygląda na to, że generuje zdarzenia (tj. - nie ma metody "register()" lub podobnej), więc domyślam się, że nie jest to zachowanie domyślne. Będziesz musiał napisać (lub znaleźć) coś, co zapewni takie zachowanie. –