Выбор ответа Middle GCD и OperationQueue обновлено
Чем OperationQueue лучше голого GCD
Вопрос
Что даёт OperationQueue по сравнению с DispatchQueue?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Зависимости между операциями, их отмену и лимит параллельности. Operation это объект с состояниями (ready, executing, finished, cancelled), и очередь умеет зависимости addDependency, отмену и лимит одновременных операций.
Варианты ответа
- Зависимости между операциями, их отмену и лимит параллельностиправильный ответ
- Выполнение каждой операции в отдельном процессе с изоляцией
- Автоматическую потокобезопасность любого кода внутри операций
- Гарантированное выполнение всех операций на главном потоке
Разбор
Operation это объект с состояниями (ready, executing, finished, cancelled), и очередь умеет зависимости addDependency, отмену и лимит одновременных операций. Построена она поверх GCD. Процессов она не создаёт и потокобезопасности чужому коду не добавляет. На главном потоке работает только OperationQueue.main.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Синхронный доступ к состоянию без очереди
Следующий вопрос
Что выведет Swift: async и sync на последовательной очереди
Термины по теме
Ещё по теме «GCD и OperationQueue»
- Асинхронная Operation
- Барьер для потокобезопасного кеша
- Инверсия приоритетов
- DispatchSemaphore для ограничения параллельности
- DispatchWorkItem и отмена
- Как дождаться нескольких запросов в GCD
- Задача на Swift: операции с зависимостями и критический путь
- Задача на Swift: OperationQueue с ограничением параллельности