Serial vs concurrent очередь — в чём разница?
Суть
- Serial — выполняет задачи строго по одной, в порядке добавления; следующая стартует после завершения предыдущей. Ровно один поток в каждый момент времени, поэтому serial-очередь — простой и надёжный способ сериализовать доступ к данным.
- Concurrent — задачи стартуют в порядке добавления, но могут выполняться одновременно на нескольких потоках и завершаться в любом порядке. Сколько потоков задействовать, решает GCD.
sync/async — другая ось: ждёт ли вызывающий код. Любую очередь можно использовать и так, и так.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep