Глобальная очередь (Global Queue) в Grand Central Dispatch (GCD) — это предопределенные системные очереди, которые доступны всем приложениям. Они являются Concurrent Queues, то есть задачи в них могут выполняться параллельно на разных потоках.
Основные характеристики:
Типы глобальных очередей (по убыванию приоритета):
| QoS Level | Описание |
|---|---|
userInteractive | Задачи, влияющие непосредственно на пользовательский интерфейс (анимации, события). |
userInitiated | Задачи, инициированные пользователем, но не блокирующие UI (загрузка контента). |
default | Уровень по умолчанию без явного указания QoS. |
utility | Задачи, требующие времени выполнения, но не моментально влияющие на UI (загрузка больших файлов). |
background | Задачи, выполняемые в фоновом режиме, не видимые пользователю (синхронизация данных). |
unspecified | Используется редко, когда QoS не важен. Эквивалентно default. |
Получение доступа к глобальным очередям:
swift
Использование глобальных очередей для выполнения задач:
swift
Важно помнить:
userInteractive для очень быстрых операций). Для обновления UI используйте основную очередь (DispatchQueue.main).sync в глобальной очереди, текущий поток будет заблокирован до завершения задачи. Это может привести к блокировке UI, если вызывается из основного потока.