Выбор ответа Junior GCD и OperationQueue спрашивают часто обновлено
Последовательная и параллельная очередь
Вопрос
Чем последовательная (serial) очередь отличается от параллельной (concurrent)?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Serial выполняет блоки по одному, concurrent несколько одновременно. Тип очереди определяет, сколько блоков выполняется одновременно.
Варианты ответа
- Serial выполняет блоки на главном потоке, concurrent на фоновых потоках
- Serial выполняет блоки по одному, concurrent несколько одновременноправильный ответ
- Concurrent запускает блоки в случайном порядке, serial в порядке FIFO
- Serial всегда синхронная, а concurrent всегда асинхронная очередь
Разбор
Тип очереди определяет, сколько блоков выполняется одновременно. Обе начинают блоки в порядке FIFO, но concurrent не ждёт окончания предыдущего. Своя serial-очередь работает на фоновых потоках, главная очередь лишь частный случай serial. Синхронность (sync/async) это свойство вызова, а не очереди.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «GCD и OperationQueue»
- Асинхронная Operation
- Барьер для потокобезопасного кеша
- Инверсия приоритетов
- DispatchSemaphore для ограничения параллельности
- DispatchWorkItem и отмена
- Как дождаться нескольких запросов в GCD
- Задача на Swift: операции с зависимостями и критический путь
- Задача на Swift: OperationQueue с ограничением параллельности