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

В чем разница между многопоточностью и асинхронностью

Многопоточность подразумевает выполнение кода в нескольких потоках (threads), где каждый поток работает параллельно. Потоки используют ресурсы CPU и могут выполняться одновременно на многоядерных процессорах. Проблемы: гонка данных, deadlocks.

Асинхронность — это подход, при котором задачи выполняются без блокировки основного потока. Один поток может обрабатывать несколько задач, переключаясь между ними при ожидании (например, I/O операций). В Java асинхронность реализуется через CompletableFuture, RxJava, Project Loom.

Пример:

java
// Многопоточность
new Thread(() -> System.out.println("Thread running")).start();

// Асинхронность
CompletableFuture.runAsync(() -> System.out.println("Async task"));

Ключевое отличие: многопоточность — параллельное выполнение, асинхронность — неблокирующая обработка задач.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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