Встречается на собеседованиях • сегодня
Как создать отдельный поток для I/O операции
Для создания отдельного потока под I/O операции в Java можно использовать Thread или ExecutorService. Лучше использовать ExecutorService, так как он управляет пулом потоков эффективнее:
java
ExecutorService executor = Executors.newSingleThreadExecutor();
executor.submit(() -> {
try {
// I/O операция, например чтение файла
Files.readAllBytes(Paths.get("file.txt"));
} catch (IOException e) {
e.printStackTrace();
}
});
executor.shutdown(); // не забыть закрытьДля асинхронных операций с NIO (Java 7+) можно использовать AsynchronousFileChannel:
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) {
// обработка данных
}
@Override
public void failed(Throwable exc, ByteBuffer attachment) {
exc.printStackTrace();
}
});
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы