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

Как NIO обеспечивает неблокируемый доступ к ресурсам

NIO (New I/O) использует каналы (`Channel`) и буферы (`Buffer`) для неблокирующего ввода-вывода. Основной механизм — `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_CONNECT); while (true) { selector.select(); // Блокирует, пока не будет готов хотя бы один канал Set keys = selector.selectedKeys(); for (SelectionKey key : keys) { if (key.isConnectable()) { // Обработка подключения } if (key.isReadable()) { // Чтение данных } } keys.clear(); } ``` Ключевые моменты: - Каналы работают в неблокирующем режиме (`configureBlocking(false)`) - `Selector` централизованно обрабатывает события - Один поток может обслуживать множество соединений
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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