Вопрос проверяет знание GCD и умение создавать кастомные очереди для управления выполнением задач.
Собственная очередь создаётся с помощью DispatchQueue. Можно указать её имя, тип и атрибуты. Очередь может быть serial или concurrent. Такие очереди используются для изоляции задач или работы с потокобезопасностью.
В GCD можно создавать собственные очереди, чтобы контролировать порядок и параллельность выполнения задач.
Задачи выполняются строго по очереди.
let serialQueue = DispatchQueue(label: "com.app.serial")
выполняет одну задачу за раз
гарантирует порядок выполнения
часто используется для защиты данных
Задачи могут выполняться параллельно.
let concurrentQueue = DispatchQueue(
label: "com.app.concurrent",
attributes: .concurrent
)
несколько задач могут выполняться одновременно
порядок старта не гарантируется
Собственные очереди полезны, когда:
нужно изолировать работу с ресурсом
требуется контролировать конкурентность
не подходит глобальная очередь
Для очереди можно задать приоритет:
DispatchQueue(label: "com.app.queue", qos: .userInitiated)
Собственные очереди позволяют лучше контролировать выполнение задач и часто используются для потокобезопасности и фоновых операций.