Я пытаюсь ускорить загрузку моего приложения, и одна из идей, которые у меня были для этого, заключалась в использовании асинхронных очередей отправки. У меня есть 2 задачи, которые можно запускать рядом друг с другом при запуске (на самом деле довольно большие задачи). Тем не менее, оба они имеют значительную часть, которая работает в основном потоке (в основном код пользовательского интерфейса).
dispatch_async(dispatch_get_main_queue, ^{
[self doTask1];
});
dispatch_async(dispatch_get_main_queue, ^{
[self doTask2];
//Will task 2 take turns with task 1, or will task 2 start after 1 is finished?
});
У меня такой вопрос: если я вызову 2 dispatch_async при загрузке, как в этом примере, будут ли они выполняться по очереди или сначала будет выполнен весь первый блок, а затем 2-й блок?