А я вот что-то сомневаюсь почему-то.. ты их синхронно в асинхронном добавляешь? Или асинхронно раз, потом асинхронно два?
Без каких либо вложенностей пока что рассматриваю
Просто код идет сплошняком сверху вниз
-----------------------------
print("Print for Main queue")
serialQueue.sync {
print("Task 1 on Serial Queue")
}
serialQueue.sync {
print("Task 2 on Serial Queue")
}
print("Print for Main queue")
Итог: Получим последовательное выполнение кода сверху вниз, так как при вызове sync, текущая очередь блокируется до завершения вызванного блока
---------------------
print("Print for Main queue")
serialQueue.async {
print("Task 1 on Serial Queue")
}
serialQueue.async {
print("Task 2 on Serial Queue")
}
print("Print for Main queue")
Итог: Основной поток из которого были вызваны методы async, блокироваться не будет, и если говорить конкретно за serialQueue, абстрагируясь от основной очереди, то в ней задания будут выполнятся последовательно несмотря на то что мы их поместили с помощью async (т.к. очередь последовательная, а не concurrent)