Встречается на собеседованиях • сегодня
Что позволяет совершить неблокирующие чтение
Неблокирующее чтение позволяет выполнять операции ввода-вывода без остановки основного потока. В Java это реализуется через NIO (New I/O) с использованием `Selector`, `Channel` и `Buffer`.
Пример с `SocketChannel` и `Selector`:
```java
Selector selector = Selector.open();
SocketChannel channel = SocketChannel.open();
channel.configureBlocking(false);
channel.connect(new InetSocketAddress("example.com", 80));
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();
}
```
Здесь `configureBlocking(false)` переводит канал в неблокирующий режим, а `Selector` уведомляет о готовности данных.

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