Ответ
Для UI-обновлений iOS по умолчанию использует главную очередь (DispatchQueue.main), так как она связана с главным потоком приложения.
Для фоновых задач система предоставляет глобальные параллельные очереди с разными уровнями качества обслуживания (QoS). По умолчанию используется очередь с приоритетом .default.
Примеры:
// 1. Обновление UI на главной очереди (обязательно)
DispatchQueue.main.async {
self.label.text = "Updated"
}
// 2. Фоновая задача на глобальной очереди по умолчанию
DispatchQueue.global(qos: .default).async {
let data = fetchDataFromNetwork()
DispatchQueue.main.async {
self.updateUI(with: data)
}
}
// 3. Краткая запись для .default
DispatchQueue.global().async {
// Фоновая работа
}
Почему так: Главная очередь последовательна и синхронизирована с циклом обработки событий UIKit/AppKit, что гарантирует безопасность UI. Глобальные очереди управляются системой и оптимально распределяют задачи между ядрами процессора.