Это зависит от машины, на которой вы работаете. Я подозреваю, что вы запускаете это на своем Mac, потому что GCD автоматически создаст достаточно потоков для конкретной системы для заданий в глобальных очередях. Итак, у вас, вероятно, более одного ядра, поэтому GCD выполняет ваши задания на обоих ядрах.
Если вы создаете свою очередь, используя dispatch_queue_create
, вы получаете последовательную очередь, и тогда вам гарантировано поведение FIFO.
FWIW (хотя вы не должны полагаться на это поведение), если вы запустите его на iPhone, я подозреваю, что вы увидите поведение последовательной очереди, потому что ваш iPhone одноядерный. Не надейтесь на это, хотя iPad 2 является многоядерным, я думаю!
РЕДАКТИРОВАТЬ:
Документация для dispatch_get_global_queue
:
Возвращает известную глобальную параллельную очередь с заданным уровнем приоритета.