Встречается на собеседованиях • сегодня
Что такое неблокирующее чтение
Неблокирующее чтение — это подход, при котором поток не блокируется, ожидая данных, а продолжает работу. В Java это реализуется через NIO (New I/O) с использованием `Selector` и каналов (`Channel`).
Пример с `SocketChannel`:
```java
SocketChannel channel = SocketChannel.open();
channel.configureBlocking(false); // Неблокирующий режим
channel.connect(new InetSocketAddress("example.com", 80));
Selector selector = Selector.open();
channel.register(selector, SelectionKey.OP_READ);
while (true) {
selector.select(); // Ожидание событий
Set keys = selector.selectedKeys();
for (SelectionKey key : keys) {
if (key.isReadable()) {
// Чтение данных без блокировки
ByteBuffer buffer = ByteBuffer.allocate(1024);
((SocketChannel)key.channel()).read(buffer);
buffer.flip();
System.out.println(new String(buffer.array()));
}
}
keys.clear();
}
```
Ключевые особенности:
- Поток не блокируется при отсутствии данных
- Используется механизм событий (`Selector`)
- Эффективен для большого числа соединений
- Требует более сложной обработки состояний

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