Что такое barrier и на какой очереди он работает?
Суть
Barrier — флаг задачи на собственной concurrent-очереди, который делает её эксклюзивной: barrier-блок стартует только после завершения всех задач, добавленных раньше, а задачи, добавленные позже, ждут его окончания. Фактически очередь на время barrier становится serial. На глобальных очередях флаг игнорируется — они общие для процесса, и блок выполнится как обычный async. На serial-очереди barrier бессмыслен: там и так всё эксклюзивно.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep