Я пытаюсь полностью понять параллельные и последовательные очереди в GCD. У меня есть некоторые проблемы, и я надеюсь, что кто-то сможет ответить мне ясно и на месте.
-
Я читаю, что очередные очереди создаются и используются для выполнения задач один за другим. Однако, что произойдет, если:
- Я создаю серийную очередь
- Я использую
dispatch_async
(в последовательной очереди, которую я только что создал) три раза, чтобы отправить три блока A, B, C
Будут выполняться три блока:
-
в порядке A, B, C, поскольку очередь является последовательной
ИЛИ
- одновременно (в то же время на потоках parralel), потому что я использовал отправку ASYNC
-
Я читаю, что я могу использовать
dispatch_sync
в параллельных очередях для выполнения блоков один за другим. В этом случае ПОЧЕМУ серийные очереди существуют, так как я всегда могу использовать параллельную очередь, где я могу отправить SYNCHRONOUSLY столько блоков, сколько захочу?Спасибо за хорошее объяснение!