dispatch_async и dispatch_sync с использованием последовательных очередей в Grand Central Dispatch

Хорошо, мне нравится Grand Central Dispatch, и после того, как я использовал его с относительным успехом, но это то, чего я не совсем понимаю.

Предположим, я создал свою собственную последовательную очередь, используя

dispatch_queue_t myQueue;
myQueue = dispatch_queue_create("myQueue", NULL);

После этого я делаю это:

dispatch_async(myQueue, ^{
  [self doStuff1];
});

// and a few lines later...

dispatch_sync(myQueue, ^{
  [self doStuff2];
});

Первая отправка асинхронная. Значит, это будет происходить одновременно, правда? Как такое может быть, если myQueue серийный? Как последовательная очередь может выполнять действия параллельно или, если хотите, не по порядку?

спасибо

24
задан Dan Rosenstark 28 April 2016 в 14:24
поделиться