Grand Central Dispatch (GCD) — это низкоуровневый C-based фреймворк конкурентности от Apple, который автоматически управляет созданием и планированием потоков, позволяя разработчикам сосредоточиться на определении задач вместо прямого управления потоками.
GCD использует dispatch queues для выполнения задач в двух режимах:
Задачи можно отправить двумя способами:
sync — блокирует текущий поток до завершения задачиasync — отправляет задачу и сразу возвращает управлениеGCD предоставляет две встроенные категории очередей:
DispatchQueue.main.async { /* UI updates */ }
DispatchQueue.global(qos: .background).async { /* heavy work */ }
Уровни QoS позволяют системе правильно расставлять приоритеты задач:
.userInteractive — анимации, мгновенный отклик UI.userInitiated — задачи, инициированные пользователем с ожиданием быстрого результата.utility — долгие задачи с индикатором прогресса.background — низкоприоритетная работа, невидимая пользователюGCD полностью абстрагирует управление потоками, делая конкурентный код безопаснее и проще в написании, позволяя системе оптимизировать производительность исходя из доступных аппаратных ресурсов.
GCD — это высокоуровневый Objective-C фреймворк, который требует от разработчиков вручную создавать и управлять потоками для выполнения конкурентных задач.
Новый — ещё не проверен сообществом
Вы