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

В чем разница между Thread и Task

Thread — это низкоуровневый объект ОС, представляющий поток выполнения. Управляется планировщиком ОС, требует ручного управления (старт, стоп, join). Потребляет ресурсы даже в простое.

Task — высокоуровневая абстракция над асинхронной операцией, работающая через пул потоков (ThreadPool). Не гарантирует отдельный поток, оптимизирует ресурсы. Поддерживает async/await, отмену (CancellationToken) и продолжения (ContinueWith).

Пример:

csharp
// Thread
var thread = new Thread(() => Console.WriteLine("Thread"));
thread.Start();
thread.Join();

// Task
var task = Task.Run(() => Console.WriteLine("Task"));
await task; // или task.Wait()

Когда использовать:

  • Thread — для долгих операций, требующих точного контроля (например, приоритет).
  • Task — для асинхронных операций, IO-bound задач, параллелизма через Parallel/PLINQ.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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