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

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

Многопоточность (multithreading) – это параллельное выполнение нескольких потоков в рамках одного процесса, где каждый поток имеет свой стек и контекст. Потоки разделяют ресурсы процесса (память, файлы), что требует синхронизации (synchronized, Lock). Пример:

java
new Thread(() -> {
    System.out.println("Thread running");
}).start();

Асинхронность – это модель выполнения задач без блокировки основного потока, где операции могут выполняться в фоне с уведомлением о завершении (callback, Future, CompletableFuture). Не требует создания отдельных потоков (может использовать пул или event-loop). Пример:

java
CompletableFuture.runAsync(() -> {
    System.out.println("Async task");
});

Ключевые отличия:

  • Потоки создают параллелизм, асинхронность – неблокирующее выполнение
  • Потоки дорогие (создание/переключение), асинхронность легковеснее
  • Асинхронность часто использует существующие потоки (ForkJoinPool)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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