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

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

Асинхронность — это модель выполнения задач без блокировки потока, где операции могут выполняться в фоне с возможностью ожидания (например, I/O операции). Многопоточность — параллельное выполнение кода в нескольких потоках.

Ключевые различия:

  • Асинхронность не создаёт новые потоки (использует пул потоков или механизмы вроде IOCP).
  • Многопоточность требует управления потоками (Thread), что может привести к contention и накладным расходам.

Пример:

csharp
// Асинхронность (не блокирует поток)
async Task GetDataAsync() {
    var data = await HttpClient.GetStringAsync("url");
}

// Многопоточность (параллельные потоки)
void ProcessInParallel() {
    var thread = new Thread(() => { /* работа */ });
    thread.Start();
}

Асинхронность эффективна для I/O-bound задач, многопоточность — для CPU-bound. В C# async/await упрощает асинхронный код без ручного управления потоками.

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

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

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

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