Зачем в Java NIO регистрировать интересные типы событий с помощью Selector? ⇐ JAVA
Зачем в Java NIO регистрировать интересные типы событий с помощью Selector?
Почему Java NIO регистрирует интересующие типы событий с помощью селектора вместо прямой регистрации интересующего SocketChannel/ServerSocketChannel?
1. Во многих примерах NIO, которые я вижу сейчас, ServerSocketChannel интересуется только событиями Accept, а SocketChannel интересуется только событиями чтения и записи. Кажется, что код всегда пишется таким образом, так зачем нам указывать параметр типа события при регистрации SocketChannel в Selector?
2.Бывают ли ситуации, когда SocketChannel интересуется только одним типом событий чтения/записи или ни одним из них?
3.Что произойдет, если продолжать отправлять данные в SocketChannel, который не зарегистрировал событие OP_READ? Результат моего теста: цикл отправки данных может продолжаться вечно. Отбрасываются ли данные непосредственно на отправительной стороне?
Где я могу получить советы по этим трем вопросам? Спасибо!!!
Почему Java NIO регистрирует интересующие типы событий с помощью селектора вместо прямой регистрации интересующего SocketChannel/ServerSocketChannel?
1. Во многих примерах NIO, которые я вижу сейчас, ServerSocketChannel интересуется только событиями Accept, а SocketChannel интересуется только событиями чтения и записи. Кажется, что код всегда пишется таким образом, так зачем нам указывать параметр типа события при регистрации SocketChannel в Selector?
2.Бывают ли ситуации, когда SocketChannel интересуется только одним типом событий чтения/записи или ни одним из них?
3.Что произойдет, если продолжать отправлять данные в SocketChannel, который не зарегистрировал событие OP_READ? Результат моего теста: цикл отправки данных может продолжаться вечно. Отбрасываются ли данные непосредственно на отправительной стороне?
Где я могу получить советы по этим трем вопросам? Спасибо!!!
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение