Встречается на собеседованиях • сегодня

Что такое неблокирующее чтение

Неблокирующее чтение — это подход, при котором поток не блокируется, ожидая данных, а продолжает работу. В 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`) - Эффективен для большого числа соединений - Требует более сложной обработки состояний
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы