Встречается на собеседованиях • сегодня
Что такое понятие селектор
Селектор в Java — это объект, позволяющий мониторить несколько каналов ввода-вывода (например, `SocketChannel` или `ServerSocketChannel`) и определять, какие из них готовы для операций чтения/записи.
**Пример:**
```java
Selector selector = Selector.open();
SocketChannel channel = SocketChannel.open();
channel.configureBlocking(false);
channel.register(selector, SelectionKey.OP_READ);
while (true) {
int readyChannels = selector.select(); // Блокируется, пока не будет готовых каналов
if (readyChannels > 0) {
Set selectedKeys = selector.selectedKeys();
for (SelectionKey key : selectedKeys) {
if (key.isReadable()) {
// Чтение данных из канала
}
selectedKeys.remove(key);
}
}
}
```
**Ключевые моменты:**
- Работает в неблокирующем режиме (`configureBlocking(false)`).
- Поддерживает операции: `OP_READ`, `OP_WRITE`, `OP_CONNECT`, `OP_ACCEPT`.
- Эффективен для управления множеством соединений в одном потоке (NIO).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы