iOS Esecuzione simultanea del codice: esecuzione di codice durante l'esecuzione di altro codice


Esempio

Dite che vuoi eseguire in azione (in questo caso, registrando "Foo"), mentre fai qualcos'altro (registrando "Bar"). Normalmente, se non si utilizza la concorrenza, una di queste azioni sarà completamente eseguita e l'altra esecuzione verrà eseguita solo dopo che è stata completata. Ma con la concorrenza, puoi eseguire entrambe le azioni contemporaneamente:

dispatch_async(dispatch_queue_create("Foo", DISPATCH_QUEUE_CONCURRENT), ^{
    for (int i = 0; i < 100; i++) {
        NSLog(@"Foo");
        usleep(100000);
    }
});

for (int i = 0; i < 100; i++) {
    NSLog(@"Bar");
    usleep(50000);
}

Questo registrerà "Foo" 100 volte, fermandosi per 100ms ogni volta che registra, ma farà tutto questo su un thread separato. Mentre viene registrato Foo , "Bar" verrà anche registrato a intervalli di 50 ms, allo stesso tempo. Dovresti idealmente vedere un output con "Foo" e "Bars" mescolati insieme