Выбор ответа Junior GCD и OperationQueue спрашивают часто обновлено

sync и async в GCD

Вопрос

Что означает queue.async { work() }?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Поставить блок в очередь и сразу продолжить текущий код. async возвращается сразу, блок выполнится позже на потоке очереди. sync блокирует вызывающий поток до конца блока.

Варианты ответа

  1. Поставить блок в очередь и сразу продолжить текущий кодправильный ответ
  2. Выполнить блок параллельно на всех доступных ядрах
  3. Выполнить блок немедленно на текущем потоке, без очереди
  4. Дождаться выполнения блока и вернуть его результат

Разбор

async возвращается сразу, блок выполнится позже на потоке очереди. sync блокирует вызывающий поток до конца блока. Количество одновременно работающих блоков определяет тип очереди, а не способ отправки.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме