Очередь Dispatch — это легковесный объект, отправляющий задачи для асинхронного или синхронного выполнения в GCD (Grand Central Dispatch).
Виды очередей:
- Серийные (Serial): Выполняют задачи строго по порядку, одну за другой.
- Параллельные (Concurrent): Выполняют задачи одновременно (насколько позволяет система и доступные ядра процессора).
Способы получения очереди:
- Главная очередь (Main Queue): Серийная очередь, связанная с основным потоком приложения (UI).
swift
- Глобальные параллельные очереди (Global Concurrent Queues): Предоставляются системой с различными приоритетами качества обслуживания (QoS).
swift
- Пользовательские очереди: Могут быть как серийными, так и параллельными.
swift
Отправка задач:
async: Добавляет задачу в очередь для асинхронного выполнения, не блокируя текущий поток.
swift
sync: Добавляет задачу в очередь для синхронного выполнения, блокируя текущий поток до завершения задачи.
swift
Используйте sync с осторожностью, особенно на главной очереди, чтобы избежать дедлоков.
Применение:
- Выполнение фоновых задач без блокирования UI.
- Управление доступом к общим ресурсам (серийные очереди служат для синхронизации).
- Параллелизация вычислений.