Поток (Thread) - это наименьшая единица планирования выполнения в операционной системе. Он представляет собой отдельный путь выполнения кода.
Очередь (Queue) - это структура данных или, в контексте Concurrency API, механизм для организации и последовательного выполнения задач (блоков кода). Очередь определяет порядок, в котором задачи будут переданы потоку для выполнения.
Основные отличия:
| Параметр | Поток (Thread) | Очередь (Queue) |
|---|---|---|
| Объект | Единица выполнения кода | Механизм организации задач |
| Ресурс | Требует системных ресурсов для создания/управления | Не является вычислительным ресурсом сама по себе |
| Планирование | Планируется операционной системой | Определяет порядок отправки задач на потоки |
| Задачи | Выполняет одну задачу за раз | Содержит множество задач для выполнения |
| iOS/macOS | Низкоуровневое управление (rarely directly) | Высокоуровневое управление Concurrency (DispatchQueue, OperationQueue) |
В iOS разработке мы чаще работаем с очередями (например, с DispatchQueue) или операциями (OperationQueue), которые абстрагируют работу с потоками. Очереди ставят задачи в правильном порядке, а система управления потоками (например, GCD) назначает их на доступные потоки для выполнения.