Я пишу простое серверное приложение с Java NIO, используя шаблон Reactor. Насколько я понимаю, класс Reactor отвечает за сбор событий (например: OP_ACCEPT,OP_READ,OP_WRITE).
Относительный EventHandler будет отвечать за конкретную задачу. Следовательно, обработчики должны иметь возможность работать в отдельных потоках асинхронно.
вот код:
[img]https://i. sstatic.net/C4ltG.png[/img]
Когда я запускаю это, появляются некоторые проблемы, цикл while продолжает работать, а селектор продолжает возвращать Набор ReadyOps (1,4,16). Я думаю, это потому, что AcceptHanndler не обрабатывал OP_ACCEPT блокирующим образом. Следовательно, даже если ключ будет удален из итератора, после вызова select() он появится снова.
Не могу ли я запустить eventHander как исполняемый файл в отдельном потоке?
Мне приходит на ум концепция моделей, запускаемых по фронту и по уровню. Причина в том, что селектор работает в модели, запускаемой по уровню?
Подробнее здесь: https://stackoverflow.com/questions/383 ... or-pattern
Отправка обработчика событий в отдельные потоки в шаблоне Java NIO Reactor. ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Зачем в Java NIO регистрировать интересные типы событий с помощью Selector?
Anonymous » » в форуме JAVA - 0 Ответы
- 32 Просмотры
-
Последнее сообщение Anonymous
-