Следующий код:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
for (int i=0; i<100000; i++) {
NSLog(@"HIGH 1 %d", i);
}
});
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
for (int i=0; i<100000; i++) {
NSLog(@"LOW %d", i);
}
});
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
for (int i=0; i<100000; i++) {
NSLog(@"HIGH 2 %d", i);
}
});
приводит к смешиванию журналов высокого 1, высокого 2 и низкого уровня.
Как получается, что он печатает журналы высокого 1 и высокого 2 одновременно. не одновременно высокий 1 и высокий 2 блоги в одной очереди? Так не следует ли завершать блок high1 перед началом выполнения блока high2?