Встречается на собеседованиях • сегодня
Что произойдет с потоком при выполнении I/O операции
При выполнении I/O операции поток переходит в состояние BLOCKED (если используется блокирующий I/O) или остается RUNNABLE (если используется неблокирующий I/O с NIO). В блокирующем режиме поток будет ждать завершения операции, освобождая CPU для других задач. В неблокирующем режиме поток может продолжать выполнение других задач, проверяя готовность данных через механизмы вроде Selector в NIO.
Пример блокирующего чтения:
java
try (InputStream in = new FileInputStream("file.txt")) {
int data = in.read(); // Поток блокируется здесь
} catch (IOException e) {
e.printStackTrace();
}Для асинхронного I/O (NIO.2):
java
AsynchronousFileChannel channel = AsynchronousFileChannel.open(Paths.get("file.txt"));
ByteBuffer buffer = ByteBuffer.allocate(1024);
channel.read(buffer, 0, buffer, new CompletionHandler<>() {
@Override
public void completed(Integer result, ByteBuffer attachment) {
// Обработка данных
}
});
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы