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